for(m >0;m<=a&&m<=b;m--)这一句你可以用for(m=(a<b?a:b);m>1;m--)代替,这样可以少写些代码,不过你的程序那样写也可以,最少让人一目了然。
要是你是初学者那你代码写成那样已经可以了,但是注意学好基础,要不然基础没打好以后就会越走越偏了;如果你是学了很长时间了,代码写成那样的话就不太好了,最少得考虑程序的健壮性吧,编程序不仅仅要考虑实现基本的功能,还要想想万一是个异常输入呢。我的建议就那些,仅为个人观点,您可以不予理睬。
我自己改了一下你的代码,如下(VC6.0调试通过)
#include<stdio.h>
main()
{
int a, b, m;
printf("请输入a b的值:");
scanf("%d %d",&a,&b);
for( m = (a<b?a:b); m > 1; m--)
{
if(( a%m == 0)&& ( b%m == 0))
break;
}
printf(" \n%d 与 %d最大公约数为:%d",a,b,m);
}
[
本帖最后由 ww稻草人 于 2010-11-24 19:00 编辑 ]