Массив структур содержит информацию о студентах группы - C (СИ)
Формулировка задачи:
/*Массив структур содержит информацию о студентах группы: в первом поле стоит фамилия, во втором -возраст,
в последующих - экзаменационные оценки и т.д. (i-й элемент массива описывает i-го студента).
Написать функции, которые выясняют, кто в группе:
а) отличники,
б) не сдал сессию.*/
я ввожу данные студента, оценку 5, а оно мне выдаёт не сдал сессию...Подскажите как сделать правильнее??))
/*Массив структур содержит информацию о студентах группы: в первом поле стоит фамилия, во втором -возраст, в последующих - экзаменационные оценки и т.д. (i-й элемент массива описывает i-го студента). Написать функции, которые выясняют, кто в группе: а) отличники, б) не сдал сессию.*/ # include <stdio.h> # include <conio.h> # include <math.h> # include <malloc.h> # include <string.h> # define N 2 int main() { struct student { char name[40]; int god; char predmet[40]; int grade; } ST[N]; int i,n; printf("Kolichestvo studentov -\n "); scanf("%d", &n); getchar(); puts ("Dannie o studente\n"); for(i=0; i<n; i++) { printf("\n%2d.Familia, imia:\n ", i+1); gets(ST[i].name); printf("God Rojdenia:\n "); scanf("%ld", &ST[i].god); printf("predmet:\n "); gets(ST[i].predmet); printf("grade:\n"); scanf("%d",&ST[i].grade); } for(i=0;i<n;i++) { if(ST[i].grade==5) { puts("Otlichnik"); } else if(ST[i].grade<5) puts("ne sdal sessiy"); i++; } getch(); return 0; }
Решение задачи: «Массив структур содержит информацию о студентах группы»
textual
Листинг программы
# include <stdio.h> # include <conio.h> # include <math.h> # include <malloc.h> # include <string.h> # define N 2 int main() { struct student { char name[40]; int god; int grade; } ST[N]; int i,n; printf("Kolichestvo studentov -\n "); scanf("%d", &n); getchar(); puts ("Dannie o studente\n"); for(i=0; i<n; i++) { printf("\n%2d.Familia, imia:\n ", i+1); gets(ST[i].name); getchar (); printf("God Rojdenia:\n "); scanf("%ld", &ST[i].god); printf("grade:\n"); scanf("%d",&ST[i].grade); getchar (); } for(i=0;i<n;i++) { if(ST[i].grade>3) printf ("\n Sdal sessiy :%s\n", ST[i].name); else printf("\n ne sdal sessiy: %s",ST[i].name); } getch(); return 0; }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Объявляет структуру
student
с полямиname
,god
иgrade
. - Определяет переменные
i
,n
и массивST
типаstruct student
. - Запрашивает у пользователя количество студентов с помощью функции
scanf
и сохраняет значение в переменнойn
. - Выводит сообщение
Dannie o studente
и осуществляет циклfor
, который выполняетсяn
раз, где каждый студент представлен одним итерационным циклом. - В каждой итерации цикла выводит сообщение с номером студента и запрашивает его имя с помощью функции
gets
. - Запрашивает год рождения студента с помощью функции
scanf
и сохраняет значение в соответствующем поле структурыST
. - Запрашивает оценку студента с помощью функции
scanf
и сохраняет значение в соответствующем поле структурыST
. - Выполняет второй цикл
for
, который также выполняетсяn
раз. - В каждой итерации второго цикла проверяет значение поля
grade
студента и выводит сообщение о том, сдал ли студент сессию или нет. - Завершает программу с помощью функции
getch
и возвращает 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д