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

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

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

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

  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.



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

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


#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)

Оцените статью
Добавить комментарий