a59288 发表于 2020-10-13 23:29:51

如何从指定文件中取出数值并求其平均值及方差

如题 ,麻烦各位大佬给个思路!

风过无痕1989 发表于 2020-10-14 02:29:34

你的要求是给个思路,所以下面的程序是能够满足你的(原因是下面的程序读取数据时少读一个,我还没找到原因,这就要求你的数据要多加一个)。在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);
}

乐乐学编程 发表于 2020-10-14 21:54:51

这个思路还不行吗?帮你顶
页: [1]
查看完整版本: 如何从指定文件中取出数值并求其平均值及方差