Используя вспомогательный файл H, записать компоненты файла F в файл G - C (СИ)

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

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

Дан файл F,компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, записать компоненты файла F в файл G так, чтобы в файле G не было двух соседних чисел с одним знаком.
#include <stdio.h>
#include <conio.h>
#define SIZE 5 //количество пар "+/-"
 
int main()
{
int i,n,z;
FILE*F;
FILE*G;
FILE*H;
 
printf("Начальный файл\n");
F=fopen("fileF.dat","w");
int c[10]={-8,10,3,5,-1,-9,7,-4,6,-5};
for(i=0;i<2*SIZE;i++)
    fprintf(F,"%d",c[i]);
fclose(F);  
  
F=fopen("fileF.dat","r");
G=fopen("fileG.dat","w");
H=fopen("fileH.dat","w");
while(!feof(F))
{   fscanf(F,"%d",&n);
    if(n>0) 
    {fprintf(G,"%d",n);
    z=0;
    fprintf(G,"%d",z);
    }
    else fprintf(H,"%d",n);
}
fclose(F);   
fclose(G);  
fclose(H);
Подскажите, что нужно добавить?

Решение задачи: «Используя вспомогательный файл H, записать компоненты файла F в файл G»

textual
Листинг программы
F=fopen("fileF.dat","r");
H=fopen("fileH.dat","w");
while(!feof(F))
{   
     fscanf(F,"%d",&n);
     if(n>0) 
         fprintf(H,"%d\n",n);
}
fclose(H);
fclose(F);

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

  1. Программа открывает файл fileF.dat для чтения (режим r).
  2. Программа открывает файл fileH.dat для записи (режим w).
  3. Программа использует цикл while для чтения данных из файла fileF.dat до тех пор, пока не достигнет конца файла (feof(F)).
  4. Внутри цикла программа считывает число из файла fileF.dat с помощью функции fscanf и сохраняет его в переменной типа int n.
  5. Если считанное число больше нуля, программа записывает его в файл fileH.dat с помощью функции fprintf.
  6. Каждое число записывается на новой строке (символ перевода строки \n).
  7. После окончания цикла программа закрывает файл fileH.dat.
  8. После окончания работы программы файл fileF.dat автоматически закрывается (fclose(F)).

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

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