Найти в файловой базе данных студентов, средний балл которых больше, чем заданный - C (СИ)
Формулировка задачи:
Бинаний файл.
Задали структуру "Студент", содержащий поля "Фамилия", "Средняя оценка". Создать базу данных 3 студентов и записать в бинарный файл, имя которого задается с клавиатуры. Найти в файловой базе данных студентов, средний балл которых больше, чем заданий.
Решение задачи: «Найти в файловой базе данных студентов, средний балл которых больше, чем заданный»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 3 #define LEN 30 struct Student { char Surname[LEN]; // фамилия - строка из 30 (например) символов float Mark; } array[N]; // задали массив из 3 таких структур int main(void) { int i; /* зададим данные структуры с клавиатуры */ for (i = 0; i < N; i++) { printf("Input Surname of student %d: ", i + 1); scanf("%s", &array[i].Surname); // считаем фамилию printf("Input middle mark of student %d: ", i + 1); scanf("%f", &array[i].Mark); // считаем средний балл printf("\n"); } /* запишем данные в бинарный файл */ FILE *out = fopen("output.bin", "wb"); fwrite(array, sizeof(struct Student), N, out); close(out); /* зададим средний балл и будем искать студентов, у которых средний бал больше, чем заданный */ out = fopen("output.bin", "rb"); float midMark; scanf("%f", &midMark); fread(array, sizeof(struct Student), N, out); // считываем N структур в массив array for (i = 0; i < N; i++) if (array[i].Mark > midMark) // если средняя оценка больше заданной printf("%s\n", array[i].Surname); // печатаем фамилию close(out); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д