Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.42 KB | None | 0 0
  1. #include <stdio.h> /*Подключение файла stdio.h*/
  2. #include <conio.h> /*Подключение файла conio.h*/
  3. #define n 4 /*n = 4 студента (константа)*/
  4. #define lenChar 20 /*lenChar = 20 - максимальная длина строки*/
  5. int main(void) {
  6.     ////Переменные и структуры////
  7.     int i = 0;/*Счётчик цикла*/
  8.     float markMax = 0; /*Максимальный средний балл среди студентов*/
  9.     int indexMarkMax = 0; /*Индекс студента с максимальным баллом*/
  10.     struct Student { /*Структура для описания студента*/
  11.         int faculty;/*Номер факультета*/
  12.         int group;/*Номер группы*/
  13.         char gender; /*Пол студента*/
  14.         char surname[lenChar]; /*Фамилия*/
  15.         int semester; /*Номер семестра*/
  16.         int markDiffEq; /*Оценка за диффуры*/
  17.         int markMathAn; /*Оценка за матан*/
  18.         int markPhys; /*Оценка за физику*/
  19.         int markEcon; /*Оценка за экономику*/
  20.     };
  21.     struct Student Students[n];/*Массив Students из 4 структур Student (4 студента)*/
  22.     float markAverage[n]; /*Массив markAverage для среднего балла каждого из 4 студентов*/
  23.     ////Ввод информации о всех студентах////
  24.     for (i = 0; i < n; i++) { /*Цикл for с i = 0 до i = 3*/
  25.         printf("Student %d:\n", i + 1);/*Обозначение ввода информации для студента с номером i + 1*/
  26.         printf("\tnumber of faculty: ");/*Обозначение ввода номера факультета*/
  27.         scanf("%d", &Students[i].faculty);/*Ввод номера факультета*/
  28.         printf("\tnumber of group: ");/*Обозначение ввода номера группы*/
  29.         scanf("%d", &Students[i].group);/*Ввод номера группы*/
  30.         printf("\tgender of student (man or woman): ");/*Обозначение ввода пола студента*/
  31.         scanf("%s", &Students[i].gender);/*Ввод пола студента*/
  32.         printf("\tsurname of student: ");/*Обозначение ввода фамилии студента*/
  33.         scanf("%s", &Students[i].surname);/*Ввод фамилии студента*/
  34.         printf("\tnumber of semester: ");/*Обозначение ввода номера семестра*/
  35.         scanf("%d", &Students[i].semester);/*Ввод номера семестра*/
  36.         printf("\tdifferential equations score: ");/*Обозначение ввода оценки по диффурам*/
  37.         scanf("%d", &Students[i].markDiffEq);/*Ввод оценки по диффурам*/
  38.         printf("\tmathematical analysis score: ");/*Обозначение ввода оценки по матану*/
  39.         scanf("%d", &Students[i].markMathAn);/*Ввод оценки по матану*/
  40.         printf("\tphysics score: ");/*Обозначение ввода оценки по физике*/
  41.         scanf("%d", &Students[i].markPhys);/*Ввод оценки по физике*/
  42.         printf("\teconomy score: ");/*Обозначение ввода оценки по экономике*/
  43.         scanf("%d", &Students[i].markEcon);/*Ввод оценки по экономике*/
  44.     }
  45.     ////Вычисление необходимых значений////
  46.     for (i = 0; i < n; i++) { /*Цикл for с i = 0 до i = 3*/
  47.         /*Вычислить средний бал каждого студента*/
  48.         markAverage[i] = ((float)Students[i].markDiffEq + (float)Students[i].markMathAn + (float)Students[i].markPhys + (float)Students[i].markEcon) / 4;
  49.     }
  50.     for (i = 0; i < n; i++) { /*Цикл for с i = 0 до i = 3*/
  51.         if (markAverage[i] > markMax) { /*Если найден студент с большей успеваемостью*/
  52.             markMax = markAverage[i]; /*Записать новый максимальный балл*/
  53.             indexMarkMax = i; /*Записать индекс студента */
  54.         }
  55.     }
  56.     ////Вывод вычисленных значений////
  57.     printf("name of the best student: %s, average mark = %f", Students[indexMarkMax].surname, markAverage[indexMarkMax]);/*Вывести имя лучшего студента и его средний балл*/
  58.     getch();/*Ожидать нажатия клавиши*/
  59.     ////Завершение работы программы////
  60.     return 0;/*Выйти из main*/
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement