新手:求最大公约数,用goto语句不知道错在哪,请高手指点
include<stdio.h>
void main()
{
int m,n,k;
scanf("%d%d",&m,&n);
if(m>n)
k=n;
else
k=m;
loop:if(m%k=0&&n%k=0) printf("%d",k);
k--;
goto loop;
}
谢谢!
[解决办法]
- C/C++ code
include <stdio.h> void main() { int m,n,k; scanf("%d%d",&m,&n); if(m> n) k=n; else k=m; loop:if(m%k=0&&n%k=0) printf("%d",k); else { k--; goto loop; // 原来那样跳不出来吧 }}
[解决办法]
#include <stdio.h>
void main()
{
int m,n,k;
scanf("%d%d",&m,&n);
if(m> n)
{
k=n;
}
else
{
k=m;
}
loop:if((m%k==0)&&(n%k==0))
{
printf("%d",k);
}
else
{
k--;
goto loop;
}
}
尽量用for,while来做。
#include <stdio.h>
void main()
{
int m,n,k;
scanf("%d%d",&m,&n); //m,n要判断是否是正整数哦
if(m>n)
{
k=n;
}
else
{
k=m;
}
while(k>0)
{
if((m%k==0)&&(n%k==0))
{
printf("%d\n",k);
break;
}
else
{
k--;
}
}
}