【问题标题】:Not sure why C prints out NaN不知道为什么 C 打印出 NaN
【发布时间】:2015-01-29 01:44:03
【问题描述】:

我正在编写一个简短的程序来计算给定图形的正确端点(此处未显示),因此为了避免繁琐的计算,我决定编写一个简短的程序来为我完成这项工作。然而我的 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;
}

【问题讨论】:

标签: c math calculator integral calculus


【解决方案1】:
 y = 10.0 - (12.0 + (float)x) / 4.0;

紧随其后

y = y+1;

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

喜欢

float y = 0;

【讨论】:

  • 我不是用float y初始化的吗?我需要 float y = 0.0 吗?
  • @Flair Yes float y; 只是声明你需要像y =0;这样的初始化
  • 在 C 语言中,您必须在开始使用之前专门给变量一个初始值。在其他语言中,有些会自动初始化为0.0,有些会出现编译错误。
猜你喜欢
  • 2013-03-20
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 2018-06-23
相关资源
最近更新 更多