繁体   English   中英

为什么是浮点异常

[英]Why a floating point exception

只需在一些项目欧拉问题上尝试一些C语言即可。

我的问题是,为什么我在运行时在以下代码上遇到浮点异常?

#include <stdio.h>
main()
{
int sum;
int counter;

sum = 0;
counter = 0;

for (counter = 0; counter <= 1000; counter++)
{
    if (1000 % counter == 0) 
    {
        sum = sum + counter;
    }
}

printf("Hello World");
printf("The answer should be %d", sum);
}

谢谢,

麦克风

您从counter = 0开始,然后对counter进行“修改”。 这是除以零。

希望这可以帮助!

您将在第一次迭代中用1000除以零(计算出除以0的提示)。 为什么它崩溃并带有浮点异常...我不知道。 也许编译器将其转换为浮点运算。 也许只是实现的一个怪癖。

1000%0是被零除

counter为0会怎样? 您尝试计算1000 % 0 您无法计算任何模0模,因此会出现错误。

您的if语句应为:

if (counter % 1000 == 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM