#include
int main()
{
int m,n,i;
printf("请输入两个正整数!\n");
while(1)
{
scanf("%d%d",&m,&n);
if(m<=0||n<=0)
{
printf("输入数据有误!\n");
printf("请重新输入:\n");
}
else
break;
}
if(m>n) //后面使用括号括起来。
{ for(i=n;i>=1;i--)
{
if(m%i==0 && n%i==0)
{ //缺少一对括号。
printf("m和n的最大公约数为:%d\n",i); //添加上%d。
break;
}
}
for(i=m;;i++)
if(i%m==0 && i%n==0)
{
printf("m和n的最小公倍数为:%d\n",i);
break;
}
}
else
{
for(i=m;i>=1;i--)
if(m%i==0 && n%i==0)
{
printf("m和n的最大公约数为:%d\n",i);
break; //找到就结束循环。
}
for(i=n;;i++)
if(i%m==0 && i%n==0)
{
printf("m和n的最小公倍数为:%d\n",i);
break;
}
}
return 0;
}
#include
int main()
{int k,i,j;
for(i=0;i<4;i++)
{
for(k=0;k<4*i;k++)
printf("!");
for(j=0;j<7-i*2;j++)
printf("*");
printf("\n");
}
getchar();
return 0;
}
你试下给Int 变量m,n,i都赋一个初值。
何必那么麻烦啊 不是有辗转相除法吗