[英]Why entering a float value in the integer variable is giving me strange answer?
在下面的C程序中
#include<stdio.h>
int main()
{
int a,b;
printf("Enter the values of a and b : ");
scanf("%d %d",&a,&b);
printf("%d %d",a,b);
return 0;
}
如果我给值“ 3.2”,我得到的答案是= 3 1有人可以解释发生了什么吗? 我正在使用DEV C ++编译器。
函数scanf
试图读取两个int
值。 您给它3.2
,它会将3
读入a
,在a
停止.
。
然后,它尝试将.2
读入b
但失败,因为.
不被视为whitespace
。
因此,永远不会设置b
并且该函数返回1
以显示其转换后的1输入。
您可以通过初始化int b=42
来显示这一点,在scanf
之后,您会发现b
仍然是42
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.