На вход в программе подаются сведения о сдаче экзаменов учениками 9─х
Условие
На вход в программе подаются сведения о сдаче экзаменов учениками 9─х классов, некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, не превосходит 100. Каждая из N строк имеет следующий формат: <Фамилия><Имя><оценки>где<Фамилия>─строка, состоящая не более чем из 20 символов <Имя>─строка, состоящая не более чем из 15 символов <оценки>─через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия>, <Имя> и <оценки> разделены одним пробелом.требуется написать программу, которая будет выводить на экран имена 3─х лучших по среднему баллу учеников.
Формат задания
Решение по шагам
Как рассуждать
Решение. type uchenik =recordFam:string[20];name:string[15];b1,b2,b3:integer;end;varsrB:array [1..100] of real;i,k,l,p,N,m1,m2,m3:integer;max1,max2,max3,sr:real;c:char;a:array[1..100] of uchenik;beginread(n); //считали количество учениковif n>=10 then beginfor I:=1 to n dobegina[i].fam:='';repeat read(c);a[i].fam:= a[i].fam+c;until c=' '; //считали фамилиюrepeat read(c);a[i].name:= a[i].name+c;until c=' '; //считали имяread(m1); a[i].b1:=m1;read(m2); a[i].b2:=m2;read(m3); a[i].b3:=m3;end; //считали балыfor i:= 1 to n dosrB[i]:= a[i].b1+a[i].b2+a[i].b3; //создали массив, содержащий средние балы max1:=srB[1]; max2:=0;max3:=0;for i:= 2 to n do begin //нашли три максимумаif srB[i]>max1 then begin max3:=max2; max2:=max1; max1:=srB[i]; k:=i; endelse if srB[i]>max2 then begin max3:=max2; max2:=srB[i]; l:=i; endelse if srB[i]>max3 then begin max3:=srB[i]; p:=i; end;end;for i:=1 to n doif srB[i]>= max3 then writeln(a[i].fam, a[i].name);endelse writeln('учеников не может быть меньше 10');end.
Осталось ещё 1 шаг
Приведём решение Ильи Муратова, Python…
Бесплатно · займёт минуту