#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a==1)
printf("yes");
else printf("no");
}
我输入数字的时候结果是对的,但是我把int 等一系列换成double float再输入就是错误的,这是什么问题?
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a==1)
printf("yes");
else printf("no");
}
我输入数字的时候结果是对的,但是我把int 等一系列换成double float再输入就是错误的,这是什么问题?
你要把
scanf("%d",&a);换成scanf("%f",&a);
因为DOUBLE FLOAT型数据在计算机内存中存储的时候小数后是内存随机数。不是全0。你输入1,其实可能是1.000334。所以要两个数相等很难。具体为什么你就要知道他们在计算机内到底是怎么存储的了。
if(a==1)
这一句,只有A为整型,输入1的时候才为真。
如果A为double,float,后面的1,要改成1.0