不知道为什么C打印出NaN

时间:2014-12-01 04:47:27

标签: c math calculator integral calculus

我正在编写一个简短的程序来计算给定图形的右端点(此处未显示),因此为了避免繁琐的计算,我决定编写一个简短的程序来为我完成这项工作。然而我的C程序只打印出nan。我在C上非常生疏,但我不确定为什么我会得到NaN。

#include <stdio.h>

int main(void) {
    int x;
    float y, z;
    for (x = 0; x <= 8; x++) {
        y += 10.0 - (12.0 + (float)x) / 4.0;
        printf("%f\n", y);
    }
    z = 0.5 * y;
    printf("%f\n", z);
    return 0;
}

1 个答案:

答案 0 :(得分:1)

 y = 10.0 - (12.0 + (float)x) / 4.0;

其次是

y = y+1;

这是有道理的,否则你y未初始化会导致未定义的行为,因为y的值是不确定的。 在声明过程中,您可以初始化y并使用+=运算符。

float y = 0;