C语言中遇到的程序问题

2024-11-26 20:50:05
推荐回答(6个)
回答1:

1. m=37;n=13;m>n执行m=m-n;===》m=24,还是m>n,继续m=m-n;===》m=11

2. n=13,m=11,n>m,执行n-=m;===》n=2

3. m=11,n=2,m>n执行m=m-n;===》m=9,继续m=m-n,分别===》7,5,3,1

4.m=1,n=2,n>m,执行n-=m;===》n=1

所以,m==n了,while(m!=n)循环结束,输出printf("m=%d\n",m);,结果为m=1

回答2:

最后输出的时候m和n都相同。
因为奇偶的缘故,最后输出的时候,肯定是在一的时候
m n
第一次循环:24 13
13 11
11 2
9 2
7 2
5 2
3 2
2 1
1 1

回答3:

第1轮:m=37-13=24,n=13
第2轮:m=24-13=11,n=13
第3轮:m=11,n=13-11=2
第4轮:m=11-2=9,n=2
第5轮:m=9-2=7,n=2
第6轮:m=7-2=5,n=2
第7轮:m=5-2=3,n=2
第8轮:m=3-2=1,n=2
第9轮:m=1,n=2-1=1
此时m==n,跳出循环

回答4:

这个 主要是 不要选A 因为程序中改变了 m的数值

循环 第一次 m=37-2*13=11;
n=13-11=2;
第二次 m=11-2*5=1
n=2-1=1
此时 m=n 跳出循环 m=1

回答5:

循环执行,判断两数是否相等,然后大减小,得到差值,替换大数..

执行完确实等于1啊...

回答6:

while(m!=n) 此条件满足,执行大括号语句, while(m>n)满足 执行 m=m-n; 此时m=37-13=24
接着 while(n>m) 不满足,故不执行n-=m;
接着又回到while(m!=n) 由于 m=24 满足条件 所以继续执行,大括号语句。 while(m>n)满足,执行: m=m-n; 此时m=24-13=11 接着while(n>m) 满足 执行其后语句。n-=m 此时n=2
接着回到while(m!=n) 执行 大括号内,m=m-n m=9
接着回到while(m!=n), 执行 大括号内,m=m-n m=7
以此往下直到m=1; while(n>m) n-=m;n=1;
输出m=1