鱼C论坛

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

程序运行结果没搞明白........

[复制链接]
发表于 2013-2-22 15:27:48 | 显示全部楼层 |阅读模式
2鱼币

  1. #include <stdio.h>


  2. main()

  3. {

  4.         int a=1, b=0;

  5.         if( --a )

  6.         {

  7.                 b++;

  8.         }

  9.         else if( a=0 )  //我调试时,当程序运行到这一步时,a=0,b=0,为什么程序会跳到下一个else 执行,b+=3,不明白

  10.         {

  11.                 b+=2;

  12.         }

  13.         else

  14.         {

  15.                 b+=3;

  16.         }

  17.         printf("%d", b);

  18. }
复制代码

请给位高手解答

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-22 15:27:49 | 显示全部楼层
  1. //小错误,把a=0改成a==0就行
  2. //你写成赋值语句了,所以A=0为假
  3. #include <stdio.h>


  4. main()

  5. {

  6.         int a=1, b=0;

  7.         if( --a )

  8.         {

  9.                 b++;

  10.         }

  11.         else if( a==0 )  //我调试时,当程序运行到这一步时,a=0,b=0,为什么程序会跳到下一个else 执行,b+=3,不明白

  12.         {

  13.                 b+=2;

  14.         }

  15.         else

  16.         {

  17.                 b+=3;

  18.         }

  19.         printf("%d", b);

  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-22 15:43:50 | 显示全部楼层
你的else if 中的a=0应该是a==0,"="是赋值的意思,0为假所以不执行;“==”这个才是等于
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-22 16:39:39 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-23 09:58:30 | 显示全部楼层
else if( a=0 )应该是 else if( a==0 ) ,=是赋值,==是判断,我觉得你这句不要这么写,最好是
else if (0 == a), 将所有的判断语句常量写在前面,变量写在后面,这样可避免出现这种问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-8 04:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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