Консультация № 66332
10.12.2006, 11:45
0.00 руб.
0 2 2
Помогите написать задачу

Найти число, повторяющееся в массиве максимальное количество раз

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

Обсуждение

Неизвестный
10.12.2006, 12:47
общий
это ответ
Здравствуйте, Андрюхаха!
Можно массив сначала упорядочить, а потом считать будет намного проще
Пример в приложении (функцию упорядочивания написать не трудно, поэтому в примере не рассматривается).

Могут быть ошибки, не проверял, но идея должна быть понятна.

Приложение:
#define N 10int A[N]; //массивint otvet = A[0]; //Сюда будет помещен ответsort(A[0],A[N]); //Сортировкаfor(int i = 0; i < N;){ int now = A[i]; //Просматриваемый элемент static int maxnum = 1; //Максимальное количество повторений int num = 0; //Количество повторений одного числа (просматриваемого) while(A[i] == now){ num++; i++; } if(maxnum < num){ otvet = now; maxnum = num; }}cout << "Искомое число: " << otvet;
Неизвестный
10.12.2006, 12:48
общий
это ответ
Здравствуйте, Андрюхаха!
В приложении решение.
Удачи!


Приложение:
for (i=0; i<n; i++){ for (j=i+1;j<n;j++) if (A[i]==A[j]) k++; if(s<k) s=k,c=A[i],k=0;}
Форма ответа