gpt4 book ai didi

c - c中的糟糕算术

转载 作者:行者123 更新时间:2023-11-30 15:01:07 25 4
gpt4 key购买 nike

我正在用 C 编写一个更长的程序,当我尝试运行它时,我得到 floating point exception error : 8 。这只是代码片段,因此我在主程序中遇到错误。为什么我在 a = (1/i+1) 时收到错误?

int main()
{
double a;
for(int i = 0; i < 10; i++)
{
a = 1/i+1;
printf("a = %lf",a);

}
}

最佳答案

在此表达式中,i 的初始值为 0:

a = 1 / i + 1;

由于 i 具有 int 类型,因此您正在评估整数除以零,这会调用未定义的行为。

这会导致消息浮点异常错误:8,这有点误导,但与未定义行为的概念完全兼容。

请注意,您需要更改表达式以强制计算为浮点:

#include <stdio.h>

int main(void) {
for (int i = 0; i < 10; i++) {
double a = 1.0 / i + 1;
printf("a = %f\n", a);
}
return 0;
}

关于c - c中的糟糕算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41651133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com