以下C代码的输出是什么?
int
数据类型可以采用浮点值吗?
#include <stdio.h>
int main(){
float a = 1.1;
int b = 1.1;
if(a==b)
printf("YES");
else
printf("NO");
}
答案 0 :(得分:2)
输出否
这是因为int
无法正确存储float
值。因此,b
中存储的值将为1
,不等于1.1
。因此,if
情况永远不会得到满足,因此输出将始终为NO。
答案 1 :(得分:1)
b
中存储的值为1
。进行比较时,b
将转换为float
值1.0f
,因此比较将产生NO。
答案 2 :(得分:1)
int b = 1.1;
这会在分配给变量1.1
之前将双值1
截断为b
。因此输出为NO
。
但您可以将int
与float
进行比较。考虑这个例子:
float a=1.0;
int b=1;
if(a==b)
printf("YES");
else
printf("NO");
此处,a
在比较之前转换为float
,因此您将获得YES
输出。
答案 3 :(得分:1)
执行时应该得到答案否。
那是因为
时int b=1.1;
已执行,它初始化变量b
,然后分配int
1.1
1
。您可以通过输出b
的值来检查此项。
类型int
仅存储整数,但float
可存储小数。类型完全不同。
答案 4 :(得分:1)
它将编译没有任何错误。该程序的输出将为“NO”。
在C中,int
和float
是两种不同的数据类型。即使您尝试将值1.1分配给C中的整数变量,它也只会初始化为1。
答案 5 :(得分:0)
其他人已经告诉过你答案是 NO。 int数据类型可以采用浮点值吗?
是的,他们可以,但只能在一个声明中!如果你希望int变量的行为类似于float变量,你需要将它转换为float。
例如:
int x = 5;
int y = 3;
printf("%f \n", (float)x/y);
输出为5.0 / 3,这将是浮动值。 (float)x
被称为投射。您还可以将浮点值转换为整数(int)some_var
等。
注意: x和y的类型将保持为!它们在此语句中的行为类似于float。
但是,在您的程序中无效,因为只要您声明int b = 1.1;
b变为1。