//文件
/*
===============================================================
题目:从文本文件"high.txt"中取出运动员的身高数据,并计算平均值,方差和标准差。
===============================================================
*/
#include<stdio.h>
#include <math.h>
#define hh printf("\n===================================\n");
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("文件打开失败!\n");
else
{
printf("身高数据:\n");
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\n",k);
printf(" 身高均值:%.2f\n",avr);
printf(" 身高方差:%.2f\n",fc);
printf("身高标准差:%.2f\n",bzc);
}
hh
fclose(fp);
}
/*
========================================================================
评:
读取用fscanf(fp,"%f",&x);
方差=(x-平均值)^2/组数 (组数=元素数-1);
========================================================================
*/