拥有源代码。函数func的内容未知:
#include <stdio.h>
#include <math.h>
float func (void)
{
// Black box
}
int main (void)
{
float f1, f2;
int r1, r2;
f1 = 5.0f;
f2 = func();
r1 = (f1 > f2);
r2 = (f1 <= f2);
printf ("r1=%d r2=%d\n", r1, r2);
return 0;
}
需要编写函数func的内容,打印出消息:
r1=0 r2=0
答案:
返回pow(-5.0,0.5);
或
返回0.0 / 0.0;
无法理解,为什么会这样?
答案 0 :(得分:1)
关于答案
return 0.0/0.0;
它将返回NaN。现在,在这种情况下,r1
和r2
都成为0
。
如果你回来了
return pow(-5.0, 0.5);
负数的平方根是虚数,因此不能表示为实数浮点数,因此由NaN表示。在这种情况下,r1
和r2
都是0
你的功能看起来像:
float func (void)
{
return 0.0/0.0 // return pow(-5.0, 0.5);
}
另一种选择是,只需返回NaN。 (包括<math.h>
)。
float func (void)
{
return NAN;
}