Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в заданном порядке - C (СИ) (74833)
Формулировка задачи:
Заданный файл f, компоненты которого являются целыми числами. Ни один из компонентов файла не равна нулю. Числа в файле идут в следующем порядке: 10 положительных, 10 отрицательных и т.д. Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: 5 положительных, 5 отрицательных, 5 положительных, 5 отрицательных и т.д.
Решение задачи: «Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в заданном порядке»
textual
Листинг программы
void doIt(FILE* in, FILE* out) { int arr[20]; int i; while(!feof(in)) { for(i =0; i<20; ++i) fscanf(in, "%d", arr+i); for(i=0; i<10; i+=5) { int j; for(j = 0; j<5;++j) fprintf(out, "%d\n", arr[i+j]); for(j = 0; j<5;++j) fprintf(out, "%d\n", arr[i+j+10]); } } }
Объяснение кода листинга программы
В данном коде происходит следующее:
- Объявляются две переменные типа int -
arr
иi
, а также два файловых указателя -in
иout
. - В цикле while с условием !feof(in) происходит чтение 20 чисел из файла, который находится в режиме чтения (in).
- Чтения выполняются в цикле for, который проходит по всем элементам массива arr.
- Далее, в цикле for с шагом 5 (начиная с 0 и с шагом 5), выполняется запись 5 чисел из массива arr в файл g (out) с помощью функции fprintf.
- Записываются числа в формате
%d\n
(без кавычек), каждое число записывается на новую строку. - Затем, в следующем цикле for с шагом 5 (начиная с 10), происходит запись оставшихся 5 чисел из массива arr в файл g (out).
- В конце каждого цикла, каждое число записывается на новую строку.
- После завершения чтения всех чисел из файла, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д