需要编写函数的内容

时间:2014-02-21 19:05:24

标签: c

拥有源代码。函数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;

无法理解,为什么会这样?

1 个答案:

答案 0 :(得分:1)

关于答案

return 0.0/0.0;

它将返回NaN。现在,在这种情况下,r1r2都成为0

如果你回来了

return pow(-5.0, 0.5); 

负数的平方根是虚数,因此不能表示为实数浮点数,因此由NaN表示。在这种情况下,r1r2都是0 你的功能看起来像:

float func (void)
{
     return 0.0/0.0 // return pow(-5.0, 0.5);
}  

另一种选择是,只需返回NaN。 (包括<math.h>)。

float func (void)
{
    return NAN;
}