该程序的输出结果是
m=37;n=13;
while(m!=n)
{
while(m>n)
m=m-n;
while(n>m)
n-=m;
}
printf("m=%d\n",m);
A m=13 B m=11 C m=1 D m=2
答案是C,请帮我解答一下,过程详细一点哦。。
C语言中遇到的程序问题
答案:6 悬赏:20 手机版
解决时间 2021-01-31 22:53
- 提问者网友:溺爱和你
- 2021-01-31 14:08
最佳答案
- 五星知识达人网友:七十二街
- 2021-01-31 15:11
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. 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
全部回答
- 1楼网友:大漠
- 2021-01-31 20:05
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
- 2楼网友:人類模型
- 2021-01-31 19:27
printf 系列函数输出格式通配符:%d 表示将输出值以整数对待;%c 表示以(ascii)字符对待;%f 表示以32bit浮点数对待。举例如下: printf("%d", v); 此时不论变量 v 是何种类型,都输出对应的整数值,比如 v 是一个指针,则输出指针地址。 printf("%c", v); 此时不论变量 v 是何种类型,都输出成一个 ascii 字符,如果 v 是一个大于 8bit 的数据类型,也只取前 8bit。 printf("%f", v); 此时程序会将 v 看作 32bit 浮点型数据。
- 3楼网友:鱼忧
- 2021-01-31 18:37
这个 主要是 不要选A 因为程序中改变了 m的数值
循环 第一次 m=37-2*13=11;
n=13-11=2;
第二次 m=11-2*5=1
n=2-1=1
此时 m=n 跳出循环 m=1
- 4楼网友:鱼芗
- 2021-01-31 17:19
第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,跳出循环
- 5楼网友:思契十里
- 2021-01-31 16:21
最后输出的时候m和n都相同。
因为奇偶的缘故,最后输出的时候,肯定是在一的时候
m n
第一次循环:24 13
13 11
11 2
9 2
7 2
5 2
3 2
2 1
1 1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯