1. 程式人生 > >C語言之文件操作07——讀取文件數據並計算均值方差標準差

C語言之文件操作07——讀取文件數據並計算均值方差標準差

取出 學生 stdio.h fscanf track white data .net +=

//文件
/*
===============================================================
題目:從文本文件"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);
========================================================================
*/

技術分享

C語言之文件操作07——讀取文件數據並計算均值方差標準差