C 需要编写函数的内容

C 需要编写函数的内容,c,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\

有源代码。函数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;
}
回答:

返回功率(-5.0,0.5)

返回0.0/0.0


不明白,为什么会这样?

关于答案

return 0.0/0.0;
它会回来的。现在在这种情况下,
r1
r2
都变成了
0

float func (void)
{
    return NAN;
}
如果你回来

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。(包括


这是脑筋急转弯吗?你知道C中的
0.0/0.0
是什么意思吗?@TunZarniKyaw:f1>f2和
f1都放
返回NAN
NAN
是在
math.h
标题中定义的宏。@dima读取此-
pow(-5.0,0.5)
返回
NAN
double-pow(double,double)
不返回复数。@MartinR;我刚刚在wiki上读到::)来自“man-pow”:pow(x,y)返回一个NaN,并引发有限x<0和有限非整数y的“无效”浮点异常。宏是
NaN
,而不是
NaN
float func (void)
{
    return NAN;
}