|
|||
for k:=1 to 99 do. if C[k] = Min then writeln(k);. const LIM = 99;. var C:array[1..LIM] of integer;. i, p, N, k, r, Min: integer;. s:string;. readln(N);. for i:=1 to N do begin. Delete(s, 1, p+5);. Val(s, k, r);. for k:=1 to LIM do. if (C[k] <> 0) afor k:=1 to 99 do if C[k] = Min then writeln(k); 16) остается «собрать» программу, чтобы получилось полное решение; максимальное количество школ мы задали в виде константы LIM: const LIM = 99; var C:array[1..LIM] of integer; i, p, N, k, r, Min: integer; s:string; begin readln(N); for i:=1 to N do begin readln(s); { читаем очередную строку } { выделяем часть после второго пробела } p := Pos(' ', s); Delete(s, 1, p+5); { определяем номер школы k } Val(s, k, r); C[k] := C[k] + 1; { увеличиваем счетчик k-ой школы } end; Min := N; for k:=1 to LIM do if (C[k] <> 0) and (C[k]<Min) then Min := C[k]; for k:=1 to LIM do if C[k] = Min then writeln(k); end.
Еще пример задания: На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <оценки>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
|
|||
|