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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kimsgy
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 2
#1

Выяснить, имеются ли элементы второго массива в первом - C++

25.10.2013, 20:06. Просмотров 304. Ответов 3
Метки нет (Все метки)

На русском:
Даны два одномерных массива размерами n и k соответственно. Выяснить, имеются ли элементы второго массива в первом. Если имеются - вывести индекс (по первому), иначе вывести -1. Если какой-либо элемент второго массива встречается в первом несколько раз, вывести индекс самого первого.
Пример:
ВВОД:
5 4
1 4 5 8 9
5 6 1 9
ВЫВОД:
3
-1
1
5
На английском:
Your task is to check if the elements from the second array can be found in first array.
If element can be found ouput index of the element,if NOT output "-1".
If element can be found multiple times output index of the first position..
Input:
First line contains n and k (0 < n, k < 10001).
Second line contains n elements from first array.
Third line contains k elements from second array.

Output:
The index of the elements (starting from 1).
If element can not be found output -1.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 20:06     Выяснить, имеются ли элементы второго массива в первом
Посмотрите здесь:

Найти минимум в первом массиве, предварительно исключив элементы, совпадающие с элементами второго массива - C++
В чём собственно суть знаменитый диктатор Ли Сий Сын имеет в своём распоряжении армию из 105 человек. Он упорядочил их по убыванию...

Выяснить, имеются ли в матрице ненулевые элементы - C++
Дана целочисленная квадратная матрица 15 и 20, выяснить имеются ли в матрице ненулевые элементы, если имеются, то указать индексы всех...

Выяснить, имеются ли в матрице ненулевые элементы - C++
дана действительная квадратная матрица порядка 15. выяснить,имеются ли в матрице ненулевые элементы,и если имеются,то указать индексы...

По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце – элементы второго массива. - C++
подскажите как на языке C++ По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце –...

Как вывести отрицательные элементы только в первом столбике массива? - C++
Как вывести отрицательные элементы только в первом столбике массива?

Определить, имеются ли в массиве элементы, равные сумме всех элементов массива - C++
#include &lt;iostream&gt; using namespace std; int main () { int n; int i = 0; int s=0; cout &lt;&lt; &quot;Entered number elements mass&quot;&lt;&lt;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
25.10.2013, 20:24     Выяснить, имеются ли элементы второго массива в первом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, k;
    cin >> n >> k;
    int *a = new int[n];
    int *b = new int[k];
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < k; i++)
        cin >> b[i];
 
    for (int i = 0; i < k; i++)
    {
        bool f = false;
        for (int j = 0; j < n; j++)
            if (b[i] == a[j])
            {
                f = true;
                cout << j+1 << endl;
                break;
            }
        if (!f) cout << -1 << endl;
    }
    system("pause");
    return 0;
}
kimsgy
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 2
25.10.2013, 20:28  [ТС]     Выяснить, имеются ли элементы второго массива в первом #3
Написал код для нахождения элементов, которые точно встречаются и там, и там (выводятся индексы). Помогите дописать, пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
int main()
{
    int n, k, current_value;
    int a[100], b[100], c[100];
    cin>>n>>k;
    for (int i=0; i<n; i++)
        cin>>a[i];
    for (int j=0; j<k; j++)
        cin>>b[j];
    for (int j=0; j<k; j++)
    {
        current_value=b[j];
        for (int i=0; i<n; i++)
        {
            if (a[i]==current_value)
                c[j]=i+1;
        }
    }
    for (int j=0; j<k; j++)
        cout<<c[j]<<" ";
    system("pause");
    return 0;
}
Добавлено через 59 секунд
TyLinka, Спасибо!

Добавлено через 2 минуты
TyLinka, блин, а без указателей можно это сделать? Пока не знаю как ими пользоватьься...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2013, 07:47     Выяснить, имеются ли элементы второго массива в первом
Еще ссылки по теме:

Выяснить образуют ли элементы массива убывающую последовательность - C++
Дан массив целых чисел Y. Выяснить образуют ли элементы массива убывающую последовательность.

Выяснить, имеются ли среди чисел совпадающие - C++
Используя стандартную библиотеку шаблонов STL и класс list по работе с двунаправленным списком, выполнить следующие задачи:Даны натуральное...

Выяснить, имеются ли среди чисел а1, ..., аn совпадающие - C++
Люди, помогите пожалуйста!!! Даны натуральное число n, целые числа а1, ... , аn. Выяснить, имеются ли среди чисел а1, ..., аn...

Дано натуральное число n, выяснить имеются ли среди чисел n, n+1,...,2n близнецы - C++
1.Дано натуральное число n, выяснить имеются ли среди чисел n, n+1,...,2n близнецы (парные простые числа), т.е разность между которыми...


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

Или воспользуйтесь поиском по форуму:
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
26.10.2013, 07:47     Выяснить, имеются ли элементы второго массива в первом #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Не очень, если честно поняла, что вы хотите, но чтобы выводились все индексы, где встречается данный элемент, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, k, current_value;
    int a[100], b[100];
    cin >> n >> k;
    for (int i = 0; i<n; i++)
        cin >> a[i];
    for (int j = 0; j<k; j++)
        cin >> b[j];
    for (int j = 0; j<k; j++)
    {
        current_value = b[j];
        for (int i = 0; i<n; i++)
        {
            if (a[i] == current_value)
                cout << i + 1 << " ";
        }
        cout << endl;
    }
    system("pause");
    return 0;
}
Первый вариант был с указателями для того, чтобы создать динамический массив. Это используется если неизвестно, сколько элементов. В вашей программе вы сделали статический массив, можно и так.
Yandex
Объявления
26.10.2013, 07:47     Выяснить, имеются ли элементы второго массива в первом
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru