Реализовать динамический массив структур "Студент" - 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;
}

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

Вот что происходит в этом коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с вводом/выводом
    • stdlib.h для работы с памятью
  2. Определяется структура Студент с полями:
    • f - строка на 16 символов
    • i - строка на 16 символов
    • o - строка на 16 символов
    • k - целочисленное значение
    • avg - вещественное число
  3. Создается переменная типа указатель на структуру Студент - s.
  4. Пользователю предлагается ввести количество студентов.
  5. Выделяется память под динамический массив структур Студент.
  6. Запускается цикл, в котором пользователь вводит данные о каждом студенте.
  7. Создается переменная типа целочисленное значение - ku.
  8. Запускается цикл, в котором выводятся данные о студентах, у которых значение поля k равно ku.
  9. Свободная память, выделенная под массив структур Студент, освобождается.
  10. Функция main() возвращает 0, что означает успешный конец работы программы.

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


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

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

12   голосов , оценка 3.667 из 5
Похожие ответы