Переписать компоненты файла F в файл G так, чтобы в файле G не было двух соседних компонент с одним знаком - C (СИ)
Формулировка задачи:
Всем привет.
Задача следующая:
Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы в файле G не было двух соседних компонент с одним знаком.
Вот попытка. Я прочитал файл F, упорядочил в файл H числа следующим образом: сначала идут положительные, а потом отрицательные. Как бы теперь записать в файл G эти числа так, чтобы первое число было положительным, второе отрицательным, и т.д. ?..
Помогите пожалуйста.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define SIZE 9
int main()
{
int a[SIZE];
int t, i,k,l;
FILE*F;
FILE*G;
FILE*H;
if((F=fopen("Chisla.txt","r"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
if((G=fopen("Znakchisla.txt","w"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
if((H=fopen("itog.txt","w"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
i=0;
while (!feof(F))
{
for (i=0; i<=SIZE; i++)
{
fscanf (F,"%d",&a[i]);
}}
for(i=0; i<=SIZE; i++)
{
t=a[i];
if (t>0) fprintf(G,"%d ", t);
}
for (k=0;k<=SIZE; k++)
{
l=a[k];
if (l<0) fprintf(G, "%d ", l);
}
fclose(F);
fclose(G);
fclose(H);
getch();
return 0;
}Решение задачи: «Переписать компоненты файла F в файл G так, чтобы в файле G не было двух соседних компонент с одним знаком»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define SIZE 9
int main()
{
int a[SIZE];
int t, i,k,l;
FILE*F;
FILE*G;
FILE*H;
if((F=fopen("Chisla.txt","r"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
if((G=fopen("Znakchisla.txt","w"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
if((H=fopen("itog.txt","w"))==NULL)
{
printf("Файл открыть не удалось!\n");
exit(1);
}
i=0;
while (!feof(F))
{
for (i=0; i<=SIZE; i++)
{
fscanf (F,"%d",&a[i]);
}
}
for (k=0;k<=SIZE; k++)
{
l=a[k];
if (l<0) fprintf(G, "%d ", l);
}
for(i=0; i<=SIZE; i++)
{
t=a[i];
if (t>0) fprintf(H,"%d ", t);
}
fclose(F);
fclose(G);
fclose(H);
getch();
return 0;
}