На вход программы подаются сведения о набранных на ЕГЭ баллах учениками
Условие
На вход программы подаются сведения о набранных на ЕГЭ баллах учениками данной школы по трём предметам. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат: < Фамилия > < Инициалы > <БаллыПоРусскомуЯзыку> <БаллыПоМатематике> <БаллыПоИнформатике>, где <Фамилия> — строка, состоящая не более чем из 20 символов, < Инициалы > — строка, состоящая из 4-х символов (буква, точка, буква, точка), <БаллыПоРусскомуЯзыку>, <БаллыПоМатематике>, <БаллыПоИнформатике> — целые числа в диапазоне от 0 до 100. Все элементы одной строки отделены друг от друга пробелом. Пример входной строки: Петров С. Н. 78 82 70Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и инициалы учеников, набравших минимальное среднее арифметическое баллов по трём предметам, отличное от 0 (таких учеников может быть несколько), а также среднее арифметическое набранных ими баллов.
Следует учитывать, что N ^ 100.
Формат задания
Решение по шагам
Как рассуждать
Решение. var fio:array[1..100] of string;var fioMin:array[1..100] of string;var sumMin:array[1..100] of integer;bRus:array[1..100] of integer; bMath:array[1..100] of integer; bInf:array[1..100] of integer;min,N,i,k,b,sum,iMin: integer; с: char;iMin: = 1;begin readln(N);min:=300; for i:=1 to N do begin fio[i]:=''; for k:=1 to 2 do repeat read(c);fio[i]:=fio[i]+c; until c=' '; read(bRus[i]);read(bMath[i]);read(bInf[i]);sum = (bRus[i] + bMath[i] + bInf[i]); if sum = min thenbeginfioMin[iMin] = fio[iMin];sumMin[iMin] = sum;iMin = iMin + 1;end; if sum < min thenbeginmin: = sum;for i:=1 to 100 dobeginfioMin[i]: = '';end;fioMin[1]: = fio[i];sumMin[1] = sum;iMin := 1;end;end;for (i:=iMin downto
Осталось ещё 2 шага
writeln(fioMin[i], sumMin[i]); end. Приведём…
# точка важна, иначе будет целочисленное…
Бесплатно · займёт минуту