Записать в файл G наибольшее значение из первых 5 компонент, затем - следующих 5 компонент и т.д - C (СИ)
Формулировка задачи:
Дан файл F, компоненты которого являются целыми числами. Записать в файл G наибольшее значение из первых 5 компонент, затем - следующих 5 компонент и т.д. Если в последней группе окажется менее 5 компонент, то последняя компонента файла G должна быть равна наибольшей из компонент файла F, образующих последнюю группу.Помогите, пожалуйста.
Решение задачи: «Записать в файл G наибольшее значение из первых 5 компонент, затем - следующих 5 компонент и т.д»
textual
Листинг программы
#include <stdio.h>
#include <limits.h>
int main()
{
FILE* f_in;
FILE* f_out;
f_in = fopen("F","r");
f_out = fopen("G", "w");
while(!feof(f_in))
{
int max = INT_MIN;
for(int i = 0; i < 5; ++i)
{
int n;
if(fscanf(f_in, "%d", &n) == 0)
break;
if(n > max)
max = n;
}
fprintf(f_out, "%d ", max);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и ограничениями типов данных.
- Создание двух указателей на файлы, один для чтения, другой для записи.
- Открытие файла F для чтения и файла G для записи.
- Создание переменной
maxтипа int с начальным значением INT_MIN. - Чтение и обработка каждой группы из 5 компонент из файла F.
- В каждой итерации цикла, обновление значения переменной
maxна максимальное из прочитанных. - Запись значения переменной
maxв файл G. - Повторение шагов 5-7 до достижения конца файла F.
- Закрытие файлов F и G.
- Возврат 0 для завершения программы.