Lxiaoyue22 2022-04-20 12:56 采纳率: 33.3%
浏览 39
已结题

c++的自增自减问题,想知道在这个程序中,m的值的变化过程是怎么样的?


**#include<iostream>
using namespace std;
int main()
{
int i,n=0,m;
for(i=1;i<=5;i++)
{
    m=i%2;
    while(m-->0)n++;
    }
    cout<<m<<","<<n;
return 0;
} **

  • 写回答

1条回答 默认 最新

  • A-Chin 2022-04-20 13:15
    关注

    m++ 是先赋值,再自减
    当 i = 1 时,m = i % 2 = 1,while(m-->0) n++; 中,m = 1 > 0, m -= 1 = 0,此时 n++ = 1;然后 m = 0 不大于 0, 但是还有 m -= 1 = -1,此时 m = -1,n = 1
    当 i = 2 时,m = i % 2 = 0,while(m-->0) n++; 中,m = 0 不大于 0, 但是还有 m -= 1 = -1,此时 m = -1,n = 1
    当 i = 3 时,m = i % 2 = 1,while(m-->0) n++; 中,m = 1 > 0, m -= 1 = 0,此时 n++ = 2;然后 m = 0 不大于 0, 但是还有 m -= 1 = -1,此时 m = -1,n = 2
    当 i = 4 时,m = i % 2 = 0,while(m-->0) n++; 中,m = 0 不大于 0, 但是还有 m -= 1 = -1,此时 m = -1,n = 2
    当 i = 5 时,m = i % 2 = 1,while(m-->0) n++; 中,m = 1 > 0, m -= 1 = 0,此时 n++ = 3;然后 m = 0 不大于 0, 但是还有 m -= 1 = -1,此时 m = -1,n = 3

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

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日