对于C编程,我如何做一个while或for循环来读取一个文件,然后把数字加在一起并求平均值?只使用库<math.h>,<stdio.h>我对C很陌生,所以请添加注解!
尝试使用while (fscanf(fin,"%", &x) !=EOF){ x++}
,但我不知道如何使它读取值。完整代码:
#include <stdio.h>
#include <math.h>
#define MXN 100
int main(void) {
int n = 0;
float avg, x;
float scores[MXN];
FILE * fin = fopen("values.txt", "r");
while (fscanf(fin, "%f", &scores[n]) != EOF) {
n++;
}
while (fscanf(fin, "%f", &x) != EOF) {
x++;
}
avg = x/n;
printf(" the array size is %d and the average of numbers read from the file is %f", n, avg);
return 0;
}
1条答案
按热度按时间8zzbczxx1#
你不需要将数字保存在数组中。只需在运行中添加它们。例如:
还要注意,最好使用
== 1
而不是!= EOF
检查fscanf
返回值,因为如果文件包含非浮点值,则使用!= EOF
可能会导致无限循环。如果你出于某种原因更喜欢读入数组,你的代码可以是这样的: