风带走了落叶801 2021-11-22 22:31 采纳率: 69.2%
浏览 15
已结题

为什么输出的又是3,不是2呢?

#include <stdio.h>
int main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}

  • 写回答

1条回答 默认 最新

  • 南七灵 2021-11-22 22:34
    关注

    a > b的逻辑值为1, 1 > c为假,第一个if不进;c-1 = 2, 2 >= 2的逻辑值为真,也就是1,1 == 1为真,进入else if;打印d + 1,也就是 3

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月22日