第1个回答 推荐于2016-10-30
改为if(i>4.0/3-0.01&&i<4.0/3+0.01);
#include "stdio.h"
main()
{
float i;
scanf("%d",&i);
if(i>4.0/3-0.01&&i<4.0/3+0.01);
printf("zheng que") ;
getch( );
}本回答被提问者采纳
第2个回答 2008-09-11
很简单了,调整一下if语句的判断条件就OK了
如果只是这么精确到小数点后两位这么简单的判断的话
用float就绰绰有余了
非用double的话,float改为double就可以了
编译器:VC++ 6.0
--------------------------
#include <stdio.h>
int main(int argc,char * argv[])
{
float i=(float)1.33,
j;
float k;
j= (float)4.0/3;
k= (j>i)?j-i:i-j;
if(k<0.005)
{
printf("%s","»Ø´ðÕýÈ·");
}
return 0;
}
第3个回答 2008-09-11
可以这样i=4.0/3,如果你想保留两位小数的话,可以i=i*100,int a=i;这样a就是i的整数部分了,然后再if(h==a*1.0/100)判断就可以了。举个例子:i=4.0/3,i=1.33333333...,i=i*100后,i=133.333333...
int a=i;a=133,然后a*1.0/100=1.33,这样就可以了.
第4个回答 2008-09-11
浮点型数值的相等判断一般不直接比较,而是比较它们的差的绝对值是否小于一个给定的足够小的数(这个数根据实际需要的精度选择),
所以可以改为:
float f = i - 4.0/3;
if(f > -0.01 && f < 0.01) printf("回答正确!");
第5个回答 2008-09-11
数据类型要浮点型