鱼C论坛

 找回密码
 立即注册
查看: 2627|回复: 4

C程序设计里的 IF 一个神奇的问题

[复制链接]
发表于 2012-6-12 18:37:46 | 显示全部楼层 |阅读模式
4鱼币
  1. #include <stdio.h>

  2. int main()

  3. {
  4. float a,b,c,t;

  5. scanf("%f,%f,%f,\n",&a,&b,&c);

  6. if(a>b)

  7. {
  8. t = a;

  9. b = a;

  10. b = t;
  11. }

  12. if(a>c)

  13. {
  14. t = a;

  15. c = a;

  16. c = t;
  17. }

  18. if(b>c)

  19. {
  20. t = b;

  21. c = b;

  22. c = t;
  23. }

  24. printf("%f,%f,%f\n",a,b,c);

  25. return 0;
  26. }
复制代码
到这里还算正常        输入输出都可以           

但是  这里之前有点小波折                  我把那三个IF后面加了  这个  ;     输出就不对了就都变成那个最小值了    什么情况
  哪位大虾解释解释    小弟好奇  

最佳答案

查看完整内容

首先你的if里面的交换语句写错了,我帮你改了,如下你在if后面加了;后,这个if相当于空语句了,就是不判断了直接执行下面的语句了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-12 18:37:47 | 显示全部楼层
首先你的if里面的交换语句写错了,我帮你改了,如下
  1. #include <stdio.h>

  2. int main()

  3. {
  4. float a,b,c,t;

  5. scanf("%f,%f,%f,\n",&a,&b,&c);

  6. if(a>b)

  7. {
  8. t = a;

  9. a = b;

  10. b = t;
  11. }

  12. if(a>c)

  13. {
  14. t = a;

  15. a = c;

  16. c = t;
  17. }

  18. if(b>c)

  19. {
  20. t = b;

  21. b = c;

  22. c = t;
  23. }

  24. printf("%f,%f,%f\n",a,b,c);

  25. return 0;
  26. }
复制代码
你在if后面加了;后,这个if相当于空语句了,就是不判断了直接执行下面的语句了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-12 19:34:00 | 显示全部楼层

那  如果是是直接执行的话   跳过IF是吧       那个{}里面的照样执行是吧     多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-12 19:45:42 | 显示全部楼层
zty 发表于 2012-6-12 19:34
那  如果是是直接执行的话   跳过IF是吧       那个{}里面的照样执行是吧     多谢

嗯,是的,不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-15 02:27:03 | 显示全部楼层
0.0:o:o:o:o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表