C 为什么';当从文件中读取数据时,我的函数是否存储了我想要的值?

C 为什么';当从文件中读取数据时,我的函数是否存储了我想要的值?,c,file,C,File,我正在编写一个函数,它从包含15个系列的文件中读取数据。每个系列以值0.0结束系列[]。totnr统计每个系列中的值的数量,系列[]。outnr统计220以上或以下5%的值的数量,系列[]。平均值存储系列中所有值的平均值 然而,当我调试函数时,我看到series[0]的值{totnr=-858993360 outnr=-858993459 average=-107374176.} 系列[1]等都有类似的值。我真的需要帮助,因为我不明白为什么会发生这种情况 在函数正在读取的文本文件的内容中: in

我正在编写一个函数,它从包含15个系列的文件中读取数据。每个系列以值0.0结束<代码>系列[]。totnr统计每个系列中的值的数量,
系列[]。outnr
统计220以上或以下5%的值的数量,
系列[]。平均值
存储系列中所有值的平均值


然而,当我调试函数时,我看到
series[0]
的值
{totnr=-858993360 outnr=-858993459 average=-107374176.}

系列[1]
等都有类似的值。我真的需要帮助,因为我不明白为什么会发生这种情况

在函数正在读取的文本文件的内容中:

int-read_数据(文件*tsin,结构系列Post系列[])
{
int i=0;
浮动总数=0,数字=0;
i=0;
while(fscanf(tsin、%f、&number)!=EOF)
{
总数=0;
做{
fscanf(tsin、%f、&number);
总数=总数+数量;
系列[i].totnr=系列[i].totnr+1;
如果(编号>231 | |编号<209)
{
系列[i].outnr++;
}
}而(数字!=0.0);
i++;
系列[i]。平均值=(总数)/(系列[i]。总计);
}
返回i;
}

“但是,当我调试函数时,我看到序列[0]的值为{totnr=-858993360 outnr=-858993459 average=-107374176.}”您需要使所有数组都以0开头。

请显示a。读取每个数字时,必须检查
fscanf
是否返回1。还有唐;在调用此函数之前,请不要忘记将数组归零。为什么不使用Visual Studio调试器?
while(tal!=0.0)
-tal分配到哪里?请显示
系列的定义。什么是
serier
?@paul ogilvie和@n-m根据OP的名称,我猜这段代码最初是用丹麦语、挪威语或瑞典语变量名编写的,然后他在发布前将其翻译成英语。除了他忘了一行把
tal
翻译成
number
,忘了两行把
serier
翻译成
series
int read_data(FILE *tsin, struct seriespost series[])
{
  int i = 0;
  float total = 0, number = 0;


  i = 0;
  while (fscanf(tsin, "%f", &number) != EOF)
  {
    total = 0;

    do {
      fscanf(tsin, "%f", &number);
      total = total + number;
      series[i].totnr = series[i].totnr + 1;
      if (number > 231 || number < 209)
      {
        series[i].outnr++;
      }

    } while (number != 0.0);
    i++;
    series[i].average = (total) / (series[i].totnr);
  }
  return i;
}