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

    Заранее спасибо за помощь

Ответы 1

  • // PascalABC.NET 3.3, сборка 1627 от 27.01.2018// Внимание! Если программа не работает, обновите версию!begin  var n:=ReadlnInteger;  if not n.InRange(10,100) then begin    Writeln('Ожидалось значение от 10 до 100');    exit    end;  var famh,namh,faml,naml:string;  var (hball,lball):=(-1.0,16.0);  loop n do begin    var a:=ReadlnString.ToWords;    var avg:=(a[2].ToReal+a[3].ToReal+a[4].ToReal)/3;    if avg>hball then (famh,namh,hball):=(a[0],a[1],avg)    else      if avg<lball then (faml,naml,lball):=(a[0],a[1],avg)    end;  Writeln;  Println('Лучший',famh,namh);  Println('Худший',faml,naml)end.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years