1.这个程序错在哪里?
2.能不能在不改变算法逻辑的情况下进行优化?
在没改变逻辑的情况下优化如下:
#include <stdio.h>
int main(void)
{
int a=0,b=0,i=0,j=0;
scanf("%d%d",&a,&b);
if(a>b)
{
for(i=b;i>0;i--)
{
if(b%i==0 && a%i==0) //如果a,b可以同时被i整除
{
printf("最大公约数为:%d\n",i);
break; //找到最大公约数了就直接跳出循环
}
}
}
else
{
for(i=a;i>0;i--)
{
if(a%i==0 && b%i==0) //如果a,b可以同时被i整除
{
printf("最大公约数为:%d\n",i);
break; //找到最大公约数了就直接跳出循环
}
}
}
return 0;
}
若有帮助望采纳。谢谢!