Записать в файл g, компоненты файла f, исключив повторные вхождения чисел - C (СИ)
Формулировка задачи:
Ребят помогите решить пожалуйста ваще запарка, вся проблема в том что НЕЛЬЗЯ использовать массивы(с массивом сделал все работает)
Дан файл f, компоненты которого являются целыми числами. Записать в файл g, компоненты файла f, исключив повторные вхождения чисел.
Вот чего то навоял но программа зацикливаеться и создает файлы блокнота по несколько мегабайт) ...
#include "stdio.h" #include "stdlib.h" #include "time.h" #include "math.h" #include "iostream" const int k=10; int main() { srand((unsigned)time(NULL)); int mass[k],i,a,j,t=0,q,w; FILE * f, *g; f = fopen("f.txt","w"); for( i=0; i<k; i++ ) {a=rand() %20; fprintf(f,"%d ",a); } fclose(f); f = fopen("f.txt","r"); g = fopen("g.txt","w+"); fseek(f,0L,0); fscanf(f,"%d",&q); fprintf(g,"%d ",q); do {fscanf(g,"%d",&w); do{ fscanf(f,"%d",&q); if (q!=w){ fprintf(g,"%d ",q); } fseek(f,2L,1); } while(q!=EOF); fseek(g,2L,1); } while(w!=EOF ); fclose(f); fclose(g); getchar(); return 0; }
Ребят плз очень надо вопрос жизни и смерти... Точнее допуска к сессии ...
Решение задачи: «Записать в файл g, компоненты файла f, исключив повторные вхождения чисел»
textual
Листинг программы
while(pos != ftell(fout)) { fscanf(fout, "%d", &t); if(t == n) { write_flag = 0; break; } else write_flag = 1; }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Открывается файл
fout
для записи. - Устанавливается начальная позиция файла
fout
в начало файла. - Запускается цикл while, который будет выполняться до тех пор, пока позиция файла
fout
не достигнет конца файлаf
. - Внутри цикла считывается число
t
из файлаfout
с помощью функцииfscanf
. - Если считанное число
t
равноn
, то устанавливается флагwrite_flag
равным 0 и цикл прерывается с помощью оператораbreak
. - Если считанное число
t
не равноn
, то устанавливается флагwrite_flag
равным 1. - После завершения цикла, закрывается файл
fout
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д