Реализовать динамический массив структур "Студент" - C (СИ)
Формулировка задачи:
(Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур. Ввод одной записи осуществляется в одной строке.)
Структура:
СТУДЕНТ:
- фамилия, имя, отчество (строки по 15 символов);
- курс (целое число от 1 до 5);
- средний балл (вещественное число от 1 до 10).
Вывести на экран все записи студентов заданного пользователем курса.
Решение задачи: «Реализовать динамический массив структур "Студент"»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct { char f[16]; char i[16]; char o[16]; int k; double avg; }st; int main () { int count,i,ku; st *s; printf("Enter nr.: "); scanf("%d",&count); s = (st*)malloc(count * sizeof(st)); for(i=0;i<count;i++) { printf("Enter stud %d :",i+1); scanf("%s %s %s %d %lf",s[i].f,s[i].i,s[i].o,&s[i].k,&s[i].avg); } printf("Enter k: "); scanf("%d",&ku); for(i=0;i<count;i++) { if(s[i].k==ku) printf("%s, %s, %s, %d, %.2lf\n",s[i].f,s[i].i,s[i].o,s[i].k,s[i].avg); } free(s); return 0; }
Объяснение кода листинга программы
Вот что происходит в этом коде:
- Включаются необходимые заголовочные файлы:
stdio.h
для работы с вводом/выводомstdlib.h
для работы с памятью
- Определяется структура
Студент
с полями:f
- строка на 16 символовi
- строка на 16 символовo
- строка на 16 символовk
- целочисленное значениеavg
- вещественное число
- Создается переменная типа указатель на структуру
Студент
-s
. - Пользователю предлагается ввести количество студентов.
- Выделяется память под динамический массив структур
Студент
. - Запускается цикл, в котором пользователь вводит данные о каждом студенте.
- Создается переменная типа целочисленное значение -
ku
. - Запускается цикл, в котором выводятся данные о студентах, у которых значение поля
k
равноku
. - Свободная память, выделенная под массив структур
Студент
, освобождается. - Функция main() возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д