麻烦大家,为什么输出n=17??
发布网友
发布时间:2024-09-26 08:28
我来回答
共6个回答
热心网友
时间:2024-10-04 06:10
你一步一步走走看看·~
比如第一遍:
n=0
n++ 之后n=1;
i%4 i这是为20 取余数 i%4返回值是0
进入case 0这条语句
i=20-7 i=13
break 退出switch
判断i是否大于0 这是i的值为13 继续循环
n++ 之后n=2;
i%4 这是i=13 返回值为1
进入case 1
由于没有遇见break,语句继续向下走
执行i++ 现在i=14
遇见break
退出
...
直到i小于零
输出n的值·
自己走走看
热心网友
时间:2024-10-04 06:12
n=1,i=13
n=2,i=14
n=3,i=15
n=4,i=16
n=5,i=9
n=6,i=10
n=7,i=11
n=8,i=12
n=9,i=5
n=10,i=6
n=11,i=7
n=12,i=8
n=13,i=1
n=14,i=2
n=15,i=3
n=16,i=4
n=17,i=-3此时退出do循环
所以n=17
热心网友
时间:2024-10-04 06:09
i的结果一次是13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 -3
所以n++了17词就是17了
热心网友
时间:2024-10-04 06:07
你这程序写得让人蛋疼~
我该写一下吧~
#include <iostream>
using namespace std;
void main ()
{
int i=20,n=0;
for(;i>=0;)
{
n++;
if(i%4==0)
i=i-7;
else
i++;
}
cout<< " n=" << n<<endl;
}
你按照过程走一遍就理解了~
n是标记程序运行次数的,每次减掉7后,都会+3,这样结合第一次,n实际上加了4,总共有4此这样的循环,所以4*4,再加上第一次,共有16+1=17次~
你最好还是自己跑一遍吧,光说无益~
热心网友
时间:2024-10-04 06:08
刚开始n = 0,i = 20
第一次循环
n = 1
i = 13
第二次循环
n = 2
i = 14
第三次循环
n = 3
i = 15
第四次循环
n = 4
i = 16
第五次循环
n = 5
i = 9
第六次循环
n = 6
i = 10
第七次循环
n = 7
i = 11
第八次循环
n = 8
i = 12
第九次循环
n = 9
i = 5
第十次循环
n = 10
i = 6
第十一次循环
n = 11
i = 7
第十二次循环
n = 12
i = 8
第十三次循环
n = 13
i = 1
第十四次循环
n = 14
i = 2
第十五次循环
n = 15
i = 3
第十六次循环
n = 16
i = 4
第十七次循环
n = 17
i = -3
此时i < 0所以循环停止
此时n = 17
热心网友
时间:2024-10-04 06:12
1
20 0 2
13 1 3
14 2 4
15 3 5
16 0 开始循环了
8 0 n=9
4 0 n=13
0 0 n=17
-7 循环停止 n=17