|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题 ,麻烦各位大佬给个思路!
你的要求是给个思路,所以下面的程序是能够满足你的(原因是下面的程序读取数据时少读一个,我还没找到原因,这就要求你的数据要多加一个)。在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[520],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[k++] = x;
- printf("%.0f ",x);
- sum += x;
- fscanf(fp,"%f",&x);
- }
- avr = sum / k; // k 为读到的数据个数
- sum = 0;
- for(i = 0;i < k;i++)
- {
- sum += (a[i] - avr) * (a[i] - avr);
- }
- fc = sum / (k - 1);
- hh
- printf(" 读取个数:%d\n",k);
- printf(" 平 均 值:%.2f\n",avr);
- printf(" 方 差:%.2f\n",fc);
- }
- hh
- fclose(fp);
- }
复制代码
|
|