C语言之文件操作07——读取文件数据并计算均值方差标准差

//文件
/*
===============================================================
题目:从文本文件"high.txt"中取出运动员的身高数据,并计算平均值,方差和标准差。
===============================================================
*/
#include<stdio.h>
#include <math.h>
#define hh printf(" =================================== ");
void main()
{
FILE *fp; 
float a[520],x,avr,fc,bzc,t,sum=0.0;
int i,k=0;
fp=fopen("D:\high.txt","r");
if(fp==NULL)
printf("文件打开失败! ");
else
{
printf("身高数据: ");
fscanf(fp,"%f",&x);
while(x!=0)
{
a[k++]=x;
printf("%.0f ",x);
sum+=x;
fscanf(fp,"%f",&x);
}
avr=sum/k;
sum=0;
for(i=0;i<k;i++)
sum+=(a[i]-avr)*(a[i]-avr);
fc=sum/(k-1);
bzc=sqrt(fc);hh
printf("  学生人数:%d ",k);
printf("  身高均值:%.2f ",avr);
printf("  身高方差:%.2f ",fc);
printf("身高标准差:%.2f ",bzc);
}
hh
fclose(fp);
}

/*
========================================================================
评:
读取用fscanf(fp,"%f",&x);
方差=(x-平均值)^2/组数   (组数=元素数-1);
========================================================================
*/


原文地址:https://www.cnblogs.com/cxchanpin/p/6915011.html