Массив 10 на 10 заполняется случайными числами от 0 до 19 и 1 число инициализируется числом 20. Но цикл нашел именно то число максимальное которое повторяется несколько раз. На скрине массив, найденный максимум и посчитанное повторение каждого из чисел.
Останавливаюсь на том что такая программа ищет максимальное среди повторяющихся более 1 раза чисел корректней всего не зависит от диапазона чисел которыми заполнен массив. Хотя наверно она не сильно оптимально написана =).
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
| #include <iostream>
#define n 5//Количество строк
#define m 10//Количество столбцов
using namespace std;
int main()
{
int arr[n][m], max;
//Заполнение
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
arr[i][j] = rand() % 100;
cout << arr[i][j] << " ";
}
cout << endl;
}
//Поиск
for (int i = 0; i < n*m-1; i++)
for (int j = i + 1; j < n*m; j++)
if (arr[i / m][i % m] == arr[j / m][j % m])
{
max = arr[i / m][i % m];
for (int i2 = i; i2 < n*m-1; i2++)
for (int j2 = i2 + 1; j2 < n*m; j2++)
if (arr[i2 / m][i2 % m] == arr[j2 / m][j2 % m] && arr[i2 / m][i2 % m]>max)
max = arr[i2 / m][i2 % m];
cout << "Max = " << max<<endl;
goto end;
}
end:
system("pause");
return 0;
} |
|