SWU if结构的使用

myRespect 2014-04-06 10:23:25
用If判断输入3+5.0/2.0的值正确与否,但不知道怎么用它,怎么判断。
问题有点傻,希望前辈不理赐教。
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
碚雅 2014-04-07
  • 打赏
  • 举报
回复
引用 2 楼 XWL1992 的回复:
"="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。 另外标题前缀应该是[SWU],你忘记中括号了。
myRespect 2014-04-07
  • 打赏
  • 举报
回复
引用 4 楼 Falleyes 的回复:
float a;
do{
   scanf("%d",&a);
   if(a==5.5){
      printf("t\n");
      break;   //得到正确的值终止
   }
   else
      printf("w\n");
while(1);   //一直为真,一直循环,直到内部跳出
补充一点,如果你想让人家继续回答,就引用别人那一楼层,这样别人的消息栏里面就能看到你的话。要不然,还要找到这个问题,进来看一看你有没有回复人家,很麻烦的。每一楼层右下角都有引用
谢谢,以后知道了
引用 4 楼 Falleyes 的回复:
float a;
do{
   scanf("%d",&a);
   if(a==5.5){
      printf("t\n");
      break;   //得到正确的值终止
   }
   else
      printf("w\n");
while(1);   //一直为真,一直循环,直到内部跳出
补充一点,如果你想让人家继续回答,就引用别人那一楼层,这样别人的消息栏里面就能看到你的话。要不然,还要找到这个问题,进来看一看你有没有回复人家,很麻烦的。每一楼层右下角都有引用
谢谢,以后知道了
Falleyes 2014-04-07
  • 打赏
  • 举报
回复
float a;
do{
   scanf("%d",&a);
   if(a==5.5){
      printf("t\n");
      break;   //得到正确的值终止
   }
   else
      printf("w\n");
while(1);   //一直为真,一直循环,直到内部跳出
补充一点,如果你想让人家继续回答,就引用别人那一楼层,这样别人的消息栏里面就能看到你的话。要不然,还要找到这个问题,进来看一看你有没有回复人家,很麻烦的。每一楼层右下角都有引用
碚雅 2014-04-07
  • 打赏
  • 举报
回复
这和浮点数的存储原理有关系,浮点数的精度是有限的。
Falleyes 2014-04-07
  • 打赏
  • 举报
回复
引用 7 楼 u013978386 的回复:
[quote=引用 6 楼 arthuryangsh 的回复:] [quote=引用 2 楼 XWL1992 的回复:] "="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。 另外标题前缀应该是[SWU],你忘记中括号了。[/quote]
引用 6 楼 arthuryangsh 的回复:
[quote=引用 2 楼 XWL1992 的回复:] "="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。 另外标题前缀应该是[SWU],你忘记中括号了。[/quote] 搬砖点错了,哈哈,一定遵守,哈哈 变量的值为什么会变?[/quote]因为计算机计算数据长度是有限的,而且有国际上的数据处理标准(什么时候四舍五入,浮点数归0啊什么的),这个你可以涉及一下计算机组成原理。
myRespect 2014-04-07
  • 打赏
  • 举报
回复
引用 6 楼 arthuryangsh 的回复:
[quote=引用 2 楼 XWL1992 的回复:] "="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。 另外标题前缀应该是[SWU],你忘记中括号了。[/quote]
引用 6 楼 arthuryangsh 的回复:
[quote=引用 2 楼 XWL1992 的回复:] "="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
对浮点数进行相等判断是非常危险的。因为变量的值完全可能为5.5000001或者5.4999999之类的。 另外标题前缀应该是[SWU],你忘记中括号了。[/quote] 搬砖点错了,哈哈,一定遵守,哈哈 变量的值为什么会变?
us天道酬勤 2014-04-06
  • 打赏
  • 举报
回复
"="是赋值运算符,“==”是等于运算符,你要判断两个表达式是否相等,你应该使用等于运算符。所以你应该这样写:if(a == 5.5)
707wk 2014-04-06
  • 打赏
  • 举报
回复
第7行
if(a==5.5)
myRespect 2014-04-06
  • 打赏
  • 举报
回复
奥,明白了,谢谢楼上诸位。 再问一个问题: 上面的循环只能够执行一次,如果我想要多次执行判断,也就是说,不断的输入值,判断正误,指导得到正确值为止。 应该怎么设计循环呢? 能不能劳烦再指点一下哈。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧