我本地没问题呀 2022-01-07 12:53 采纳率: 57.1%
浏览 32
已结题

一道选择题,为什么m--输出5,

int m;      
scanf("%d",&m);      
if(m++>5)
printf("%d",m);      
else
printf("%d\n",m--);

答案是 7和5

  • 写回答

3条回答 默认 最新

  • Code_流苏 优质创作者: C/C++技术领域 2022-01-07 13:17
    关注

    如下程序,
    ①如果是3,结果是4;
    ②如果是4,结果是5;
    ③如果是5,结果是6;
    ④如果是6,结果是7;
    按题主你所说 答案是 7和5 也就是 5 和 7
    那就是② 和 ④
    情况②
    m++ < 5 为什么?因为 m++<5 就相当于 m<5 然后结束后 m+=1;
    所以执行else
    else
    printf("%d\n",m--); 输出m结果为5,输出后m再自减1;
    情况④m++>5 相当于 m>5 m+=1; printf("%d",m);
    6+1=7,输出为7

    #include<stdio.h>
    
    int main()
    {
      int m;      
      scanf("%d",&m);      
      if(m++>5)
      printf("%d",m);      
      else
      printf("%d\n",m--);
        return 0;
    }
     
    
    

    希望对题主有所帮助,望采纳!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 创建了问题 1月7日