#include<stdio.h>
int main()
{
int n,m,i,x;
scanf("%d,%d",&m,&n);
if(n>=m)
x=m;
else
x=n;
for(i=x;i>=1;i--)
{
if (m%i==0&&n%i==0)
{
printf("%d",i);
break;
}
}
return 0;
}
这个程序能正常运行 例如我输入81和27 ,得到27 但是少了break之后运行出来的结果变成了两万多 ,我想知道为什么少了break 不能跳出循环之后 数字会变到两万多
关于求最大公约数的程序
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
qzjhjxj 2021-10-06 18:33关注不加 break;就是输出两个数的所有公约数,不是结果有两万多,是输出时没有空格,所有输出连在一起了27931,其实是 27 9 3 1 ,printf("%d\n",i); 这么改下就看得出来了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用