c语言求三个数最大公约数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:33:17
main()
{
int x,y,z,a,min;
scanf("%d%d%d",&x,&y,&z);
if(x>=y)
if(y>=z)min=z;
else min=y;
else
if(y<=z)min=x;
else
if(x<=z)min=x;else min=z;
printf("这三个数中最小的是\n",min);

for(a=min;a>0;a--)
{printf("%d",a);
if((x%a==0&&y%a==0)&&z%a==0);break;}
printf("这三个数的最大公约数是\n",a);
system("pause");
}

为什么我输入3 7 9后出来的最大公约数是3
是不是两个&&不能这样使用?

#include <stdio.h>

main()
{
int x,y,z,a,min;
scanf("%d%d%d",&x,&y,&z);
if(x>=y)
if(y>=z)min=z;
else min=y;
else
if(y<=z)min=x;
else
if(x<=z)min=x;else min=z;
printf("这三个数中最小的是",min);

for(a=min;a>0;a--)
{printf("%d",a);
if(x%a==0&&y%a==0&&z%a==0)break;}//break前面不能有“;”号
printf("\n这三个数的最大公约数是%d\n",a);
system("pause");
}