Определить студентов с баллом выше среднего

Задача

Пользователь вводит данные о количестве студентов, их фамилии, имена и балл для каждого. Программа должна определить средний балл и вывести фамилии и имена студентов, чей балл выше среднего.

Пояснение к задаче и алгоритм решения

В программе надо создать тип структуры с полями для имени и фамилии студента и балла. После этого создать массив структур, где каждый элемент массива - это информация об одном студенте.

Алгоритм будет таков:

  1. Запросить количество студентов.
  2. Выполнить цикл записи информации о студентах в поля структур, находящихся в массиве. При этом необходимо суммировать баллы в отдельную переменную.
  3. Вычислить средний балл, разделив полученную сумму баллов на количество студентов.
  4. Выполнить цикл прохода по массиву структур. Если значение поля балла очередного студента больше найденного среднего, то вывести на экран значение поля его фамилии и имени.

Исходный код на языке программирования Pascal

type
    studs = record
        sname: string[50];
        eval: integer;
    end;
var
    arr_studs: array[1..15] of studs;
    sum: integer;
    average: real;
    i,n: byte;
begin
    write('Количество студентов: ');
    readln(n);
    sum := 0;
    for i:=1 to n do
        with arr_studs[i] do begin
            write(i,'-й студент: ');
            readln(sname);
            write('Балл: ');
            readln(eval);
            sum := sum + eval;
        end;
    average := sum / n;
    writeln;
    writeln('Средний балл: ', average:2:0, '. Студенты с баллом выше среднего:');
    for i:=1 to n do
        if arr_studs[i].eval > average then
            writeln(arr_studs[i].sname);
end.

Пример(ы) выполнения программы на языке Pascal

Количество студентов: 10
1-й студент: Иванов Иван
Балл: 63
2-й студент: Илюшин Илья
Балл: 74
3-й студент: Петров Петр
Балл: 32
4-й студент: Митин Дмитрий
Балл: 50
5-й студент: Настина Настя
Балл: 95
6-й студент: Родионов Родион
Балл: 84
7-й студент: Сергеев Сергей
Балл: 68
8-й студент: Женин Женя
Балл: 72
9-й студент: Кристинина Кристина
Балл: 45
10-й студент: Владов Влад
Балл: 75

Средний балл: 66. Студенты с баллом выше среднего:
Илюшин Илья
Настина Настя
Родионов Родион
Сергеев Сергей
Женин Женя
Владов Влад

Исходный код на языке программирования C

#include <stdio.h>
 
struct studs {
    char fname[20];
    char lname[20];
    int point;
};
 
main() {
    struct studs arr[15], *a;
    int sum, i, n;
    float average;
    printf("Количество студентов: ");
    scanf("%d",&n);
    sum = 0;
    for (i=0, a=arr; i<n; i++, a++) {
        printf("%d-й студент: ", i+1);
        scanf("%s%s",a->fname,a->lname);
        printf("Балл: ");
        scanf("%d",&(a->point));
        sum += a->point;
    }
    average = sum / n;
    printf("Средний балл: %.0f. Студенты с баллом выше среднего:\n", average);
    for (i=0, a=arr; i<n; i++, a++)
        if (a->point > average)
            printf("%s %s\n", a->fname, a->lname);
}

Исходный код на языке программирования Python

studs = {}
n = int(input("Количество студентов: "))
s = 0
for i in range(n):
    sname = input(str(i+1) + "-й студент: ")
    point = int(input("Балл: "))
    studs[sname] = point
    s += point
 
avrg = s / n
print("\nСредний балл: %.0f. Студенты с баллом выше среднего:" % avrg)
for i in studs:
    if studs[i] > avrg:
        print(i)

Тема

Структуры данных (записи, словари)

Уровень сложности

Средний

Дата публикации