Вывести фамилии неуспевающих студентов с указанием номеров групп - C (СИ)
Формулировка задачи:
Создать массив структур, содержащий сведения о
сдаче студентами сессии. Каждая структура имеет
поля – номер группы, фамилия студента, оценки по
пяти экзаменам и пяти зачетам (з – зачет, н -
незачет).
Выдать на печать следующую информацию:
фамилии неуспевающих студентов с указанием
номеров групп;
средний балл, полученный группой Х в целом.
Значение Х вводится по запросу с терминала
Решение задачи: «Вывести фамилии неуспевающих студентов с указанием номеров групп»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define STUDS 5 //количество студентов typedef struct { long int group; //группа char name[15]; //имя int exam[5]; //экзамены int zach[5]; //зачеты int sum; //для суммирования оценок }Student; int main(void) { Student stud[STUDS]={0}; //объявление int i,j; //переменные-счетчики int x; //для запроса группы int sm=0; int gcnt=0; puts("---------------------------------------"); puts("Zapolnenie informacii o studentah:"); for (i=0;i<STUDS;i++) //заполняем информацию { printf("-----STUDENT %d-----\n",i+1); printf("Nomer grupi: "); scanf("%ld",&stud[i].group); printf("Familiya: "); scanf("%s",stud[i].name); for (j=0;j<5;j++) //заполняем отметки { printf("Exam #%d: ",j); scanf("%d",&stud[i].exam[j]); printf("Zach #%d: ",j); scanf("%d",&stud[i].zach[j]); stud[i].sum+=stud[i].exam[j]; stud[i].sum+=stud[i].zach[j]; } puts("---------------------------------------"); } puts("---------------------------------------"); puts("Zapolneno!"); puts("---------------------------------------"); for(i=0;i<STUDS;i++) { if((stud[i].sum/10) < 3) //если средний бал за испытания меньше тройки. { printf("Student: %s - Group: %ld\n",stud[i].name,stud[i].group); } } puts("---------------------------------------"); puts("Vvedite nomer grupi dlya srednego balla"); scanf("%d",&x); for (i=0;i<STUDS;i++) { if (stud[i].group == x) { sm+=(stud[i].sum/10); //суммируем средние баллы студентов gcnt++; //считаем количество студентов в данной группе } } printf("Sredball: %d\n",sm/gcnt); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и строками
- Объявляем структуру
Student
для хранения информации о студентах, включающую группу, имя, массив оценок по экзаменам и зачетам, а также переменную для подсчета суммы оценок - В функции
main
объявляем массивstud
типаStudent
для хранения информации о студентах - Задаем константу
STUDS
для определения количества студентов - Используем цикл
for
для заполнения информации о каждом студенте, включая его имя, фамилию и оценки по экзаменам и зачетам - Используем
printf
для вывода информации о каждом студенте в форматеNomer grupi:
,Familiya:
- Используем
scanf
для считывания информации о группе и имени студента - Используем цикл
for
для заполнения оценок по экзаменам и зачетам - Проверяем средний балл студента, и если он меньше тройки, выводим информацию о нем
- Запрашиваем номер группы для вычисления среднего балла
- Используем цикл
for
для подсчета среднего балла студентов в выбранной группе - Выводим средний балл студентов в выбранной группе
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д