Файлы. Определить среднее арифметическое положительных чисел и записать в другой файл результат - C (СИ)
Формулировка задачи:
Написала программу, она компилируется, но не даёт результат (текстовые файлы я создала). Помогите, пожалуйста
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
FILE *f, *f1;
int main()
{int x, q=0, sum=0;
double l;
f=fopen("D:\\TextFile", "rt");
f1=fopen("D:\\rez", "wt");
if(f == NULL)
{
printf("Problems");
system("pause");
return 1;
}
if (fscanf(f,"%d",&x)>0)
{sum+=x;
q+=1;
l=sum/q;
}
fprintf(f1," %3lf",l);
fclose(f);
fclose(f1);
return 0;
}Решение задачи: «Файлы. Определить среднее арифметическое положительных чисел и записать в другой файл результат»
textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
FILE *f, *f1;
int main()
{
int x;
double q = 0, sum = 0, l;
f = fopen("1.txt", "rt");
f1 = fopen("2.txt", "wt");
if(f == NULL)
{
printf("Problems");
system("pause");
return 1;
}
while(fscanf(f,"%d",&x) != EOF) //будет продолжать считывать до пробела, пока не встретит конец файла
{
if(x > 0)
{
sum += x;
q += 1;
l = sum/q;
}
}
fprintf(f1, "%3lf", l);
fclose(f);
fclose(f1);
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Объявляются необходимые переменные: x (целое число), q (число с плавающей точкой), sum (число с плавающей точкой), l (число с плавающей точкой), f и f1 (указатели на файлы)
- Открывается файл
1.txtдля чтения и файл2.txtдля записи - Проверяется, открылся ли файл
1.txtуспешно. Если нет, выводится сообщение об ошибке и программа завершается - Начинается цикл, который будет считывать числа из файла
1.txtдо тех пор, пока не встретит конец файла - Если считанное число больше нуля, оно добавляется к сумме и к количеству чисел, а также вычисляется среднее арифметическое
- После окончания цикла, среднее арифметическое записывается в файл
2.txt - Файлы закрываются
- Программа завершается