一道有关c语言的题有以下定义语句:double a,b;int w;long c;w=a==b这个表达式为什么是错误的呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 13:19:48

一道有关c语言的题有以下定义语句:double a,b;int w;long c;w=a==b这个表达式为什么是错误的呢?
一道有关c语言的题
有以下定义语句:
double a,b;
int w;
long c;
w=a==b这个表达式为什么是错误的呢?

一道有关c语言的题有以下定义语句:double a,b;int w;long c;w=a==b这个表达式为什么是错误的呢?
首先在语法上是没错误的.但是在正常的使用中,会认为是错的.
浮点数本来就是一个不精确的数值,比较相等最好是做差与一个满意的小数值比较来确定是否近似相等.
== 操作将返回一个布尔值,它的值只有两种状态,0或非0.
有意思的操作
#include
#include
int run();
int run()
{
int a,b,e,f;
char c,d;
c=1;
d=1;
e=1024;
f=1024;
a= c==d;
b = e==f;
if(a==b)
{
puts("相同的布尔");
}
else
puts("不同的布尔");
return 0;
}
int main(){
run();
}
这段代码就可能会出问题.