计数功能始终至少返回264 C.

时间:2017-11-29 03:52:58

标签: c count

我目前正在编写一个程序,用于通过函数执行一些方程式。将要读取的可能数据是高达100万个两个精度浮点数,不包括0.当我尝试计算读入数组的数字的数量时,我收到错误,但由于某种原因,我得到一个默认值我每次运行程序都是264。因此,例如,如果不输入任何值,我得到264的计数,1值265,2值266,依此类推。我想我可以从计数中减去264得到准确的总数,但我想知道为什么会发生这种情况以及264来自何处。我附上了目前为止的代码。谢谢。

#include <stdio.h>
#include <stdlib.h>

#define N 1000000

int count_num(double numbers[]);
double sum(double numbers[]);
double max(double numbers[]);
double min(double numbers[]);
double ar_mean(double numbers[]);
double har_mean(double numbers[]);
double variance(double numbers[]);

int main(void)
{
    double numbers[N];
    int i =0;

    while(scanf("%lf.2",&numbers[i])!=EOF&&i<N)
    {
        i++;
    }

    int count=count_num(numbers);
    printf("Count: %d\n", count);
}

int count_num(double numbers[])
{
    int count=0;
    for(int i=0;i<N;i++)
    {
        if((numbers[i]!=0)&&(numbers[i]!=0.0))
        {
            count++;
        }
    }

    return count;
}

1 个答案:

答案 0 :(得分:2)

评论者,information_interchange和AnT都是正确的,未初始化的数组是问题的原因 - 它包含未知值。您需要通过循环并将所有元素设置为0.0或使用构造double numbers[N] = {0.0};

来初始化数组

另一个:您的main函数不返回int,但必须符合ISO / IEC 9899:2011 5.1.2.2.1。