#include<stdio.h>
int main()
{
int m,n,r;
printf("请输入两个数");
do
{
scanf("%d%d\n",&m,&n);
}while(m<=0||n<=0);
while((r=m%n)!=0)
{
m=n;
n=r;
}
printf("%d\n",n);
return 0;
}
你好,scanf里面不要加\n,会影响输入
#include<stdio.h>
int main()
{
int m,n,r;
printf("请输入两个数");
do
{
scanf("%d%d",&m,&n); //这里的\n删掉
}while(m<=0||n<=0);
//循环修改如下
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("%d\n",m);
return 0;
}
r=m%n,你给r赋值了
话说,求最大公约数,你好歹得循环个因数来除吧,你代码里没有任何一个++,只是来回互相赋值,那你求因数的原理是什么呢?
#include<stdio.h>
int main()
{
int m, n, r;
printf("请输入两个数");
do
{
scanf("%d%d", &m, &n);//把\n删掉就行
} while (m <= 0 || n <= 0);
while ((r = m%n) != 0)
{
m = n;
n = r;
}
printf("%d\n", n);
return 0;
}