Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 09.10.2014
Сообщений: 79

Номера одинаковых элементов массива

26.03.2015, 21:01. Показов 2067. Ответов 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <ctime>
 
using namespace std;
int i, N;
 
//Последовательный поиск
int LineSearch(int A[], int key)
{
    for (i = 0; i < N; i++)
    {
        if (A[i] == key)
        {
            return i;
        }
    }
            return -1;
}
 
//главная функция
void main()
{
    setlocale(LC_ALL, "Rus");
    int key, A[1000];
    srand(time(NULL));
    cout << "Размер массива > ";
    cin >> N;
    cout << "Массив: " << endl;
    for (i = 0; i<N; i++)
    {
        A[i] = rand() % 10;
        cout << A[i] << " ";
    }
    cout << endl<<"Искомый элемент > ";
    cin >> key;
    {
        if (LineSearch(A, key) == -1)
        {
            cout << "Элемент не найден" << endl;
        }
        else
        {
            cout << "Номер элемента: " << LineSearch(A, key) + 1 << endl;
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2015, 21:01
Ответы с готовыми решениями:

Найти номера двух одинаковых элементов массива
Дан целочисленный массив размера N, содержащий ровно два одинаковых элемента. Найти номера одинаковых элементов и вывести эти номера в...

Нахождение номера столбца с максимальной серией одинаковых элементов в двумерном массиве
Подскажите чайнику: Сейчас учусь на заочке на первом курсе, изучаю С++. задача такая: 1. В целочисленном двумерном массиве найти...

Найти максимальное значение элементов массива, а также номера всех элементов массива с этим значением
Дан массив из n элементов. Необходимо найти максимальное значение элементов массива, а также номера всех элементов массива, имеющих это...

3
5 / 5 / 1
Регистрация: 16.02.2014
Сообщений: 77
26.03.2015, 21:11
Лучший ответ Сообщение было отмечено Bad_Trip как решение

Решение

Видоизмени функцию:

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
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <ctime>
 
using namespace std;
int i, N;
bool f;
 
int LineSearch(int A[], int key)
{
    for (i = 0; i < N; i++)
    {
        if (A[i] == key)
        {
            cout<<i<<" ";
            f=true;
        }
    }
            return -1;
}
 
 
void main()
{
    setlocale(LC_ALL, "Rus");
    int key, A[1000];
    srand(time(NULL));
    cout << "Размер массива > ";
    cin >> N;
    cout << "Массив: " << endl;
    for (i = 0; i<N; i++)
    {
        A[i] = rand() % 10;
        cout << A[i] << " ";
    }
    cout << endl<<"Искомый элемент > ";
    cin >> key;
    LineSearch(A,key);
        if (!f)
        {
            cout << "Элемент не найден" << endl;
        }
}
1
21 / 21 / 13
Регистрация: 28.04.2013
Сообщений: 85
26.03.2015, 21:14
переделать LineSearch под функцию, которая принимает на вход int* и число элементов, которое оно должно просмотреть, типа
C++
1
2
3
4
5
6
7
8
9
10
11
int LineSearch(int* A, int N, int key)
{
    for (int i = 0; i < N; i++)
    {
        if (A[i] == key)
        {
            return i;
        }
    }
    return -1;
}
вывод типа
C++
1
2
3
4
5
6
7
8
int start = 0;
int length - sizeof(A) / sizeof( A[0] );
int pos;
while( (pos = LineSearch( &A[start], length - start, key )) != -1 )
{
cout << "Номер элемента: " << pos + 1 << endl;
start = pos;
}
или что то в этом роде
0
1 / 1 / 1
Регистрация: 09.10.2014
Сообщений: 79
26.03.2015, 21:20  [ТС]
Спасибо!
Только нужно внести поправку в 14 строку
C++
1
 cout<<i+1<<" ";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2015, 21:20
Помогаю со студенческими работами здесь

Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности
Дан массив размера N. Найти номера двух ближайших элементов из этого массива (т. е. элементов с наименьшим модулем разности) и вывести эти...

Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Замена первой группы одинаковых элементов на последнюю группу одинаковых элементов
Всем привет, помогите с заменой первой группы одинаковых элементов в нашем случае пять единиц на последнюю группу одинаковых элементов,...

Есть ли среди элементов заданного массива простые числа? Если да, то вывести номера этих элементов
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Поиск одинаковых элементов массива
#include &lt;conio.h&gt; #include &lt;locale&gt; #include &lt;iostream&gt; using namespace std; int main () { setlocale (LC_ALL,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru