Форум программистов, компьютерный форум CyberForum.ru

Первое вхождение 2-го массива в 1-ый - C++

Восстановить пароль Регистрация
 
Micki
227 / 3 / 0
Регистрация: 01.04.2010
Сообщений: 145
10.10.2012, 18:35     Первое вхождение 2-го массива в 1-ый #1
Приветствую...
Помогите с решение:
нужно найти первое вхождеине второго массива в первый, т.е.
дан массив А: (1 3 5 7 3 5 20 9)
и массив В: ( 4 2 5)
в итоге программа должна вывести в ответе "i=2"
если вхождений нет(if (i==n)), должна вывести "вхождений нет".
По сути я понимаю, что нужно брать первый элемент из 2-го массива и сравнивать его со всеми элементами из первого...и тд., если, к примеру, мы нашли элементы равные(a[i]=b[j]), то выводим "i"...но как это корректно реализовать я не знаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 18:35     Первое вхождение 2-го массива в 1-ый
Посмотрите здесь:

Найти в тексте первое вхождение заданного слова (С++) C++
Удалить из строки первое вхождение буквосочетание 'not' C++
C++ Найти первое вхождение подстроки и передать указатель
C++ Первое вхождение символа в строку. С++
C++ Найти первое вхождение в строку заданного ключевого слова
В массиве строк найдите первое вхождение символов s и S C++
Найти первое вхождение символов в строку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5916 / 3353 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
10.10.2012, 18:43     Первое вхождение 2-го массива в 1-ый #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
 
int main()
{
    int a[] = { 1, 3, 5, 7, 3, 5, 20, 9 };
    int b[] = { 4, 2, 5 };
    int *found = std::end(a);
    for(int *begin = std::begin(b); begin != std::end(b); ++begin)
        if ((found = std::find(std::begin(a), std::end(a), *begin)) != std::end(a))
            break;
    if (found != std::end(a))
        std::cout << std::distance(std::begin(a), found) << std::endl;
    else
        std::cout << "Not found" << std::endl;
}
Micki
227 / 3 / 0
Регистрация: 01.04.2010
Сообщений: 145
10.10.2012, 18:47  [ТС]     Первое вхождение 2-го массива в 1-ый #3
Цитата Сообщение от Петррр Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
 
int main()
{
    int a[] = { 1, 3, 5, 7, 3, 5, 20, 9 };
    int b[] = { 4, 2, 5 };
    int *found = std::end(a);
    for(int *begin = std::begin(b); begin != std::end(b); ++begin)
        if ((found = std::find(std::begin(a), std::end(a), *begin)) != std::end(a))
            break;
    if (found != std::end(a))
        std::cout << std::distance(std::begin(a), found) << std::endl;
    else
        std::cout << "Not found" << std::endl;
}
спасибо, а можно тоже самое для произвольных массивов и на более тривиальном языке, ибо я ничего не понял (т.к. с языком начал знакомство менее месяца назад)
Yandex
Объявления
10.10.2012, 18:47     Первое вхождение 2-го массива в 1-ый
Ответ Создать тему
Опции темы

Текущее время: 21:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru