Var n:longint; i,d,dmax:byte; a:array[0..9] of byte; begin Writeln('Введите натуральное число (1..2147483647): '); Read(n); for i:=0 to 9 do a[i]:=0; dmax:=0; while n>0 do begin d:=n mod 10; if dmax<d then dmax:=d; Inc(a[d]); n:=n div 10 end; Writeln('Максимальная цифра ',dmax,' встречается ',a[dmax],' раз(а)') end.
<em><u>Тестовое решение:</u></em> Введите натуральное число (1..2147483647): 235636634 Максимальная цифра 6 встречается 3 раз(а)
/* * Сумма элементов массива * [ 1, 2, 3] => 6 * [-5, 8, 2] => 5 */ int arraySum(int a[], int s) { int ret = 0; for (int i = 0; i < s; i++) { ret += a[i]; } return ret; }
/* * Определение, каких чисел больше в массиве. * [-1, 2, 3] => "Положительных" * [ 1, -2, -3] => "Отрицательных" */ const char* plusMinGreater(int a[], int s) { int plus = 0, minus = 0; for (int i = 0; i < s; i++) { if (a[i] > 0) plus++; if (a[i] < 0) minus++; } return (plus > minus ? "Положительных чисел больше" : (plus < minus ? "Отрицательных чисел больше" : "Положителных и отрицательных поровну")); }
/* * Разница между максимальным и минимальным элементами. * [5, 3, 2] => 5 - 2 = 3 */ int maxMinDiff(int a[], int s) { int min = a[0], max = a[0]; for (int i = 1; i < s; i++) { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } return max - min; }
int main() { int n; cout << "n = "; cin >> n;
int a[n]; for (int i = 0; i < n; i++) { cout << "Число " << i << ": "; cin >> a[i]; }
Первая проверка a < b = 100< 12 - нет, уходим по стрелке справа Вторая проверка b<c = 12 < 100 - да, уходим по стрелке слева d:=b то есть d:= 12 вывод d = 12 Ответ: 12.