gpt4 book ai didi

c - C中关于 'floating point exception'的简单问题

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:46 31 4
gpt4 key购买 nike

我有以下 C 程序:

#include <stdio.h>

int main()
{
double x=0;
double y=0/x;
if (y==1)
printf("y=1\n");
else
printf("y=%f\n",y);
if (y!=1)
printf("y!=1\n");
else
printf("y=%f\n",y);

return 0;
}

我得到的输出是

y=nan
y!=1

但是当我换行时 双 x = 0;到 整数 x=0;输出变为

Floating point exception

谁能解释一下为什么?

最佳答案

您正在用整数运算引起除法 0/0(这是无效的,并会产生您看到的异常)。无论 y 的类型如何,首先计算的是 0/x

x 声明为double 时,零也被转换为double,并使用浮点运算执行-点算术。

x 声明为 int 时,您将一个 int 0 除以另一个,结果无效。

关于c - C中关于 'floating point exception'的简单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6902862/

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