Записать в файл g наибольшее значение первых пяти компонент файла f - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д. Если в последней группе окажется менее пяти компонент, то последняя компонента файла g должна быть равна наибольшей из компонент файла f, образующих последнюю (неполную) группу.
#include<stdio.h> 
#include<iostream.h> 
int b,c,q,k,m,f,g; 
int main() 
{FILE *f=fopen("f.txt","r"); 
FILE *g=fopen("g.txt","a"); 
{ 
fscanf(f,"%d,%d,%d,%d,%d",&b,&c,&q,&k,&m);}
if((b>c)&&(b>q)&&(b>k)&&(b>m)) 
{fprintf(g,"%d","b");} 
if((c>q)&&(c>k)&&(c>m)) 
{fprintf(g,"%d","c");} 
if((q>k)&&(q>m)) 
{fprintf(g,"%d","q");} 
if(k>m) 
{fprintf(g,"%d","k");} 
else {fprintf(g,"%d","m");}
fclose(f);fclose(g); 
return 0;}
Чтение до конца файла f как произвести? (вторую, третью.... пятерку не считает)

Решение задачи: «Записать в файл g наибольшее значение первых пяти компонент файла f»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 5
 
int main()
{
    FILE *fin, *fout;
    int max, i, n;
    fin = fopen("f.txt", "r");
    fout = fopen("g.txt", "w");
    if(!fin || !fout){
        fputs("Error opening file!", stderr);
        exit(1);
    }
    for(i = 1; 1; i++){
        if(1 != fscanf(fin, "%d", &n)){
            fprintf(fout, "%d ", max);
            break;
        }
        if(i % N == 1)
            max = n;
        else{
            if(max < n)
                max = n;
            if(!(i % N))
                fprintf(fout, "%d ", max);
        }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}

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

  1. Объявляются переменные: — fin - указатель на файл для чтения — fout - указатель на файл для записи — max - переменная для хранения максимального значения — i - счётчик для чтения компонент — n - переменная для хранения текущей компоненты
  2. Открываются файлы f.txt и g.txt. Если открытие не удалось, выводится сообщение об ошибке и программа завершается.
  3. Запускается цикл, который читает первые пять компонент из файла f.txt.
  4. Если первая компонента не прочиталась, выводится сообщение об ошибке и в файл g.txt записывается значение переменной max.
  5. Если текущая компонента — первая, то значение переменной max обновляется.
  6. Если текущая компонента — не первая, то проверяется, является ли она максимумом. Если да, то значение переменной max обновляется.
  7. Если текущая компонента — пятая, то в файл g.txt записывается значение переменной max.
  8. Закрываются файлы f.txt и g.txt.
  9. Программа завершается.

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


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

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

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