Вывести фамилии неуспевающих студентов с указанием номеров групп - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Создать массив структур, содержащий сведения о сдаче студентами сессии. Каждая структура имеет поля – номер группы, фамилия студента, оценки по пяти экзаменам и пяти зачетам (з – зачет, н - незачет). Выдать на печать следующую информацию: фамилии неуспевающих студентов с указанием номеров групп; средний балл, полученный группой Х в целом. Значение Х вводится по запросу с терминала

Решение задачи: «Вывести фамилии неуспевающих студентов с указанием номеров групп»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #define STUDS 5 //количество студентов
  5. typedef struct
  6. {
  7.     long int group; //группа
  8.     char name[15]; //имя
  9.     int exam[5]; //экзамены
  10.     int zach[5]; //зачеты
  11.     int sum; //для суммирования оценок
  12. }Student;
  13. int main(void)
  14. {
  15.     Student stud[STUDS]={0}; //объявление
  16.     int i,j; //переменные-счетчики
  17.     int x; //для запроса группы
  18.     int sm=0;
  19.     int gcnt=0;
  20.  
  21.     puts("---------------------------------------");
  22.     puts("Zapolnenie informacii o studentah:");
  23.     for (i=0;i<STUDS;i++) //заполняем информацию
  24.     {
  25.         printf("-----STUDENT %d-----\n",i+1);
  26.         printf("Nomer grupi: ");
  27.         scanf("%ld",&stud[i].group);
  28.         printf("Familiya: ");
  29.         scanf("%s",stud[i].name);
  30.         for (j=0;j<5;j++) //заполняем отметки
  31.         {
  32.             printf("Exam #%d: ",j);
  33.             scanf("%d",&stud[i].exam[j]);
  34.             printf("Zach #%d: ",j);
  35.             scanf("%d",&stud[i].zach[j]);
  36.             stud[i].sum+=stud[i].exam[j];
  37.             stud[i].sum+=stud[i].zach[j];
  38.         }
  39.  
  40.         puts("---------------------------------------");
  41.     }
  42.     puts("---------------------------------------");
  43.     puts("Zapolneno!");
  44.     puts("---------------------------------------");
  45.  
  46.     for(i=0;i<STUDS;i++)
  47.     {
  48.         if((stud[i].sum/10) < 3) //если средний бал за испытания меньше тройки.
  49.         {
  50.             printf("Student: %s - Group: %ld\n",stud[i].name,stud[i].group);
  51.         }
  52.     }
  53.     puts("---------------------------------------");
  54.     puts("Vvedite nomer grupi dlya srednego balla");
  55.     scanf("%d",&x);
  56.     for (i=0;i<STUDS;i++)
  57.     {
  58.  
  59.         if (stud[i].group == x)
  60.         {
  61.             sm+=(stud[i].sum/10); //суммируем средние баллы студентов
  62.             gcnt++; //считаем количество студентов в данной группе
  63.         }
  64.     }
  65.     printf("Sredball: %d\n",sm/gcnt);
  66.     return 0;
  67. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O и строками
  2. Объявляем структуру Student для хранения информации о студентах, включающую группу, имя, массив оценок по экзаменам и зачетам, а также переменную для подсчета суммы оценок
  3. В функции main объявляем массив stud типа Student для хранения информации о студентах
  4. Задаем константу STUDS для определения количества студентов
  5. Используем цикл for для заполнения информации о каждом студенте, включая его имя, фамилию и оценки по экзаменам и зачетам
  6. Используем printf для вывода информации о каждом студенте в формате Nomer grupi:, Familiya:
  7. Используем scanf для считывания информации о группе и имени студента
  8. Используем цикл for для заполнения оценок по экзаменам и зачетам
  9. Проверяем средний балл студента, и если он меньше тройки, выводим информацию о нем
  10. Запрашиваем номер группы для вычисления среднего балла
  11. Используем цикл for для подсчета среднего балла студентов в выбранной группе
  12. Выводим средний балл студентов в выбранной группе

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы