Переписать компоненты файла 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д