对于哪个 f 值,输出将是“世界”?
#include<stdio.h>
int main(){
float f= ... ;
if(f==f)
printf("hello\n");
else
printf("world\n");
return 0;
}
什么将替换为三个点 (...)
对于哪个 f 值,输出将是“世界”?
#include<stdio.h>
int main(){
float f= ... ;
if(f==f)
printf("hello\n");
else
printf("world\n");
return 0;
}
什么将替换为三个点 (...)
尝试这个:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
float f = nanf("0.0");
printf("%f\n", f);
if(f==f)
printf("hello\n");
else
printf("world\n");
return 0;
}
简单的。
float f = (puts("world"), exit(0), 0.0f);
编辑:是的,我知道您正在寻找不同的答案。但我会变得很可爱,因为这看起来像是家庭作业或带回家测验中的一个问题,甚至还没有分解成各个部分。
您可以使用NAN
来自 的宏math.h
。
#include <math.h>
#include <stdio.h>
int main(void)
{
float f = NAN;
if (f == f)
printf("hello\n");
else
printf("world\n");
}
请注意,此宏已在 C99 中引入,如果实现不支持该float
类型的安静 NaN,则不存在此宏。