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