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

Найти в массиве единственный элемент, отличный от всех остальных

24.10.2019, 21:36. Показов 3938. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Помогите пожалуйста с задачей.
Найдите в массиве единственный элемент, который отличается от остальных и верните индекс этого массива.
Input:
{ 5, 5, 3, 5, 5 }

Output:
2

Вот только это смог написать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const int n = 5;
    const int arr[n] = { 5,5,3,5,5 };
        
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    for (int i = 0; i < n; i++) {
        if (...) {
 
        }
    }
    cout << endl;
В инете я только нашел, как проверить на равенство два массива, а элементы одного массива нет.
Помогите.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2019, 21:36
Ответы с готовыми решениями:

Найти строки, у которых диагональный элемент больше суммы всех остальных
2. Дан квадратный двумерный массив A размера nxn. Сформировать одномерный массив B, куда записать номера тех строк A, у которых...

Определить, единственный ли в массиве максимальный элемент
Определить, единственный ли в массиве максимальный элемент ,определить наибольшее количество одинаковых элементов в данном массиве.

Определить, единственный ли в массиве максимальный элемент
Всем привет, пожалуйста помогите решить следущие задания: 4)Составьте программу для решения одной из следующих задач. ...

10
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
24.10.2019, 21:41
Цитата Сообщение от Artem_7 Посмотреть сообщение
В инете я только нашел, как проверить на равенство два массива, а элементы одного массива нет.
C++
1
2
3
4
5
6
for (int i = 1; i < n; i++) 
    if (arr[i - 1] != arr[i]) 
    {
        cout << "!!!!" <<  arr[i] << std::endl;
        break; 
    }
0
1 / 1 / 0
Регистрация: 03.06.2019
Сообщений: 83
24.10.2019, 21:50  [ТС]
oleg-m1973, Спасибо. Работает)
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
24.10.2019, 21:53
Цитата Сообщение от Artem_7 Посмотреть сообщение
oleg-m1973, Спасибо. Работает)
Нет, не работает. Это просто пример.
Попробуй его на массиве { 3, 5, 5, 5, 5 }
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.10.2019, 22:33
Лучший ответ Сообщение было отмечено Artem_7 как решение

Решение

oleg-m1973, так зачем ТС пример, который не работает ?

Artem_7, можно отлавливать при вводе, но если сначала задать массив, а потом найти индекс
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;
    cout << "n="; cin >>n;
 
    int*a = new int[n];
 
    cout << "Enter " << n << " elements:\n";
    for (int i = 0; i < n; i++)
      cin >> a[i];
      
    if (a[0]==a[1]) k=a[0];
    if (a[1]==a[2]) k=a[1];
    if (a[0]==a[2]) k=a[0];    
 
    for (int i = 0; i < n; i++)
      if (a[i]!=k) {cout << i << "\n";break;}     
 
    delete[]a;
system("pause");
return 0;
}
ещё слово верните, а не найдите - возможно функцию нужно добавить - уточните у того, кто дал задачу нужна ли функция
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
24.10.2019, 22:34
Цитата Сообщение от Yetty Посмотреть сообщение
oleg-m1973, так зачем ТС пример, который не работает ?
Ну например затем, чтобы ты написал пример, который работает.
Ты бы сделал это без моего сообщения? Скорее всего - нет.
Это раз. Во-вторых, ТС тупо не умел сравнивать элементы массива, я тупо показал как.
0
1 / 1 / 0
Регистрация: 03.06.2019
Сообщений: 83
25.10.2019, 19:38  [ТС]
oleg-m1973, привет. Почему не работает? У меня заработало.
const int n = 5;
const int arr[n] = { 3,5,5,5,5 };

for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
for (int i = 0; i < n; i++) {
if (arr[i - 1] != arr[i] && arr[i] != arr[i + 1]) {

cout <<"arr[" << i << "]";

}
}
cout << endl;

Добавлено через 1 минуту
Yetty, привет. Нет, функция не нужна!
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.10.2019, 20:02
Цитата Сообщение от Artem_7 Посмотреть сообщение
У меня заработало
один массив - не показатель. такой проверьте
const int arr[n] = { 5,3,5,5,5 };
0
1 / 1 / 0
Регистрация: 03.06.2019
Сообщений: 83
25.10.2019, 21:31  [ТС]
Yetty, кстати да, не работает. Спасибо за помощь, буду решать.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.10.2019, 21:44
Цитата Сообщение от Artem_7 Посмотреть сообщение
кстати да, не работает. Спасибо за помощь, буду решать.
можете конечно решать, но я Вам сбросил рабочий код
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
25.10.2019, 21:57
Цитата Сообщение от Artem_7 Посмотреть сообщение
Yetty, кстати да, не работает. Спасибо за помощь, буду решать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
if (n < 2)
    return;
 
if (arr[0] != arr[1])
    std::cout << "!!!!" << (arr[0] == arr[n - 1]? arr[1]: arr[0]) << std::endl;
else 
    for (int i = 2; i < n; i++) 
        if (arr[i - 1] != arr[i]) 
        {
            cout << "!!!!" <<  arr[i] << std::endl;
            break; 
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2019, 21:57
Помогаю со студенческими работами здесь

Массив: В массиве найти самый большой элемент и вычислить сумму всех элементов столбца и всех элементов строки, которые содержат этот элемент
В двухмерном массиве найти самый большой элемент и вычислить сумму всех элементов столбца и всех элементов строки, которые содержат этот...

За единственный проход по массиву найти неповторяющийся элемент
здравствуйте, уважаемые программисты.) у меня такой вопросик: дан массив из нечетного кол-ва элементов, каждый из который встречается в...

Найти в матрице единственный элемент противоположного знака по отношению к другим
Добрый вечер. Я вас уже стал слишком часто беспокоить, хорошо, однако, кой-какие недостатки исправляю сам. Есть программа, которая...

В целочисленном массиве имеется единственный нулевой элемент, разделяющий его на две части. В частном случае любой из подмассивов может быть пустым
В целочисленном массиве имеется единственный нулевой элемент, разделяющий его на две части. В частном случае любой из подмассивов может...

Как отобразить элемент поверх всех остальных
Всем привет. Помогите решить проблему. Есть код выпадающего меню: /*-----------------------------------NAV*/ nav .primary_nav{...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru