Задание №1702/25
Задание
Дан массив, содержащий 2017 целых чисел. Необходимо определить моду значений элементов этого массива, то есть значение, которое встречается чаще всего. Если таких значений несколько, необходимо вывести наименьшее из них. Например, в массиве из 6 элементов, равных соответственно 2; 0; 1; 0; 3; 1, модой являются значения 0 и 1, значит, ответом будет 0 — наименьшее из них.
Исходные данные объявлены так, как показано ниже. Запрещается использовать не описанные переменные, но допускается не использовать некоторые из них.
-
Копировать
const N = 2017; var a : array [0 .. N - 1] of integer; i, j, m, p, s : integer; begin for i := 0 to N - 1 do readln(a[i]); ... end.
-
Копировать
#include <stdio.h> #define N 2017 int main() { int a[N]; int i, j, m, p, s; for (i = 0; i < N; i++) scanf("%d", &a[i]); ... return 0; }
-
Копировать
CONST N = 2017 DIM A(N - 1) AS INTEGER DIM I, J, M, P, S AS INTEGER FOR I = 0 TO N - 1 INPUT A(I) NEXT I ... END
-
Копировать
# допускается также использо- # вание целочисленных # переменных j, m, p, s N = 2017 a = [] for i in range(N) : a.append(int(input())) ...
В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Допускается решение на другом языке программирования. В этом случае укажите название языка и используемую версию. При этом необходимо использовать те же самые исходные данные и переменные, какие были предложены в условии.
Решение
Подробнее...Ответ
-
Копировать
p := 0; for i := 0 to N - 1 do begin s := 0; for j := 0 to N - 1 do if a[j] = a[i] then s := s + 1; if s > p then begin p := s; m := a[i] end else if (s = p) and (a[i] < m) then m := a[i] end; writeln(m);
-
Копировать
p = 0; for (i = 0; i < N; i++) { s = 0; for (j = 0; j < N; j++) if (a[j] == a[i]) s++; if (s > p) { p = s; m = a[i]; } else if (s == p && a[i] < m) m = a[i]; } printf("%d", m);
-
Копировать
P = 0 FOR I = 0 TO N - 1 S = 0 FOR J = 0 TO N - 1 IF A[j] = A[i] THEN S = S + 1 END IF NEXT J IF S > P THEN P = S M = A[I] ELSE IF S = P AND A[I] < M THEN M = A[I] END IF END IF NEXT I PRINT M
-
Копировать
p = 0 for i in range(N) : s = 0 for j in range(N) : if a[j] == a[i] : s += 1 if s > p : p = s m = a[i] else : if s == p and a[i] < m : m = a[i] print(m)
- Комментариев пока нет...