C语言循环结构程序设计题

用while语句、do-while语句和for语句编写循环结构的程序1.有一个计算最大公约数的算法如下:1)输入两个正整数到m和n;2)如果m=n输出最大公约数m程序结束... 用while语句、do-while语句和for语句编写循环结构的程序

1.有一个计算最大公约数的算法如下:
1)输入两个正整数到m和n;
2)如果m=n输出最大公约数m程序结束;
3)若m>n则m=m-n否则n=n-m;
4)返回到2) (循环)。
用适合的循环控制语句实现这个算法。

2.修改上面的程序,使它能够输出m,n在运算构成中的变化。

3.用集成环境提供的单步执行功能,跟踪查看每个语句执行后便量的变化情况。
展开
 我来答
忆芷苓
2008-04-18
知道答主
回答量:26
采纳率:0%
帮助的人:22.1万
展开全部
(1)用while语句实现

#include<stdio.h>
void main()
{
int m,n;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
while(m!=n)
{

if(m>n)m=m-n;
else n=n-m;
printf("m=%d n=%d\n",m,n); \\输出m,n在运算构成中的变化

}
printf("最大公约数为:%d\n",m);
}

(2)用do-while语句实现

#include<stdio.h>
void main()
{
int m,n;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
do
{
if(m>n)m=m-n;
else n=n-m;
printf("m=%d n=%d\n",m,n); \\输出m,n在运算构成中的变化
}
while(m!=n)
printf("最大公约数为:%d\n",m);
}

(3)用for语句实现
#include<stdio.h>
void main()
{
int m,n,j;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
for(i=0,i++,i<m)
{
if(m==n)
break;
else
{
if(m>n)m=m-n;
else n=n-m;
}
printf("m=%d n=%d\n",m,n); \\输出m,n在运算构成中的变化
}
printf("最大公约数为:%d\n",m);
}
百度网友d127579
2008-04-18 · TA获得超过1663个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:0
展开全部
这个算法程序没有错,只是需要输入两个正整数.

#include<stdio.h>
void main()
{
int m,n;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
while(m!=n)
{
if(m>n)m=m-n;
else n=n-m;
printf("m=%d n=%d\n",m,n);
//这一句就输出了m,n在运算构成中的变化
}
printf("最大公约数为:%3d\n",m);
}

3、调试要根据你输入的数字不同,在环境中自己去做。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6d639a819
2008-04-18
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
int CommonDivisor(int m,int n)
{
while(m!=n)
{
if(m>n)
{
m-=n;
}
else
{
n-=m;
}
}
return m;
}
main()
{
int m,n,cd;
printf("\nInput M ! \n");
scanf("%d",&m);
printf("Input N !\n");
scanf("%d",&n);
cd= CommonDivisor(m,n);
printf("The CommonDivisor is %d .",cd);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式