Присоединиться

11 класс·высокий уровень

В первой строке сообщается количество учеников N, которое не меньше 10

Условие

На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <оценки>, где <Фамилия> - строка, состоящая не более чем из 20 символов, <Имя> — строка, состоящая не более чем из 15 символов, <оценки> - через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:Иванов Петр 4 2 4 Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена неуспевающих учеников (имеющих по результатам экзаменов хотя бы одну двойку), располагая их в порядке уменьшения числа двоек.

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. ##Приведём решение на языке Pascal.var р:array[1..100] of record name:string; sum:integer; end;с:char;i,j,N,m:integer;beginreadln(N); for i:=l to N dobeginp[i].name:= ' ';repeat read(c); p[i].name:=p[i].name+cuntil c=' '; repeat read(с); p[i].name:=p[i].name+cuntil c=' '; p[i].sum:=0; for j:=1 to 3 do beginread(m);if m=2 then p[i].sum:=p[i].sum+1end; readln;end;for i:=1 to N do if p[i].sum=3 then writeln(p[i].name); for i:=1 to N doif p[i].sum=2 then writeln(p[i].name);for i:=1 to N doif p[i].sum=1 then writeln(p[i].name) end.

Осталось ещё 1 шаг

  1. Приведём решение Сергея Донец на языке…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка символьных строк»

В первой строке сообщается количество учеников N, которое не меньше 10 — решение с объяснением | Lom Ai