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

2025-01-31 21:54:01
推荐回答(3个)
回答1:

(1)用while语句实现

#include
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
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
void main()
{
int m,n,j;
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
for(i=0,i++,i{
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);
}

回答2:

这个算法程序没有错,只是需要输入两个正整数.

#include
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、调试要根据你输入的数字不同,在环境中自己去做。

回答3:

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);
}