SWU if构造的使用

SWU if结构的使用
  用If判断输入3+5.0/2.0的值正确与否,但不知道怎么用它,怎么判断。SWU if构造的使用
  问题有点傻,希望前辈不理赐教。
------解决方案--------------------
第7行
if(a==5.5)

------解决方案--------------------
"="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
------解决方案--------------------
float a;
do{
   scanf("%d",&a);
   if(a==5.5){
      printf("t\n");
      break;   //得到正确的值终止
   }
   else
      printf("w\n");
while(1);   //一直为真,一直循环,直到内部跳出


补充一点,如果你想让人家继续回答,就引用人家,很麻烦的。每一楼层右下角都有引用
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

"="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)


对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。
另外标题前缀应该是[SWU],你忘记中括号了。


引用:
Quote: 引用:

"="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)


对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。
另外标题前缀应该是[SWU],你忘记中括号了。

  搬砖点错了,哈哈,一定遵守,哈哈
变量的值为什么会变?
因为计算机计算数据长度是有限的,而且有国际上的数据处理标准(什么时候四舍五入,浮点数归0啊什么的),这个你可以涉及一下计算机组成原理。
------解决方案--------------------
这和浮点数的存储原理有关系,浮点数的精度是有限的。