如何从指定文件中取出数值并求其平均值及方差
如题 ,麻烦各位大佬给个思路! 你的要求是给个思路,所以下面的程序是能够满足你的(原因是下面的程序读取数据时少读一个,我还没找到原因,这就要求你的数据要多加一个)。在D盘下建立一个 data.txt 文件,写入数据:182 198 188 175 185 184 175 178 192 176 0
( 最后这个 0 就是那个多余的数据,当然也可以是任何的数,反正也不会读到它)
// 从文本文件"data.txt"中取出数据,并计算平均值,方差
#include<stdio.h>
#include <math.h>
#define hh printf("\n===================================\n");
void main()
{
FILE *fp;
float a,x,avr,fc,sum = 0.0;
int i,k = 0;
fp = fopen("D:\\data.txt","r");
if(fp == NULL)
{
printf("文件打开失败!\n");
}
else
{
printf("读取数据:\n");
fscanf(fp,"%f",&x);
while(fgetc(fp) != EOF) // 读取文件数据 x
{
a = x;
printf("%.0f ",x);
sum += x;
fscanf(fp,"%f",&x);
}
avr = sum / k; // k 为读到的数据个数
sum = 0;
for(i = 0;i < k;i++)
{
sum += (a - avr) * (a - avr);
}
fc = sum / (k - 1);
hh
printf("读取个数:%d\n",k);
printf("平 均 值:%.2f\n",avr);
printf("方 差:%.2f\n",fc);
}
hh
fclose(fp);
} 这个思路还不行吗?帮你顶
页:
[1]