总出错 小弟我技术烂 高手们我错在哪 这是一道求最大公约数的题目。。 Error:Declaration syntax error

还有:Undefined symbol 'a'
Undefined symbol 'b'
Undefined symbol 'c'
我写的程序是这样
# include <stdio.h>
void main()
{
int maxyue(int x,int y)
int a,b,c;
scanf("%d,%d",&a,&b);
c=maxyue(a,b);
printf("c=%d",c);
}
int maxyue(int x,int y)
{
int z,t,m;
if(x<y)
t=x;x=y;y=t;
for(i=0;x%y=0;i++)
{m=x%y;x=y;y=m;}
z=x;
printf("z=%d",z);
return(z);

}
非常感谢你的回答 我试了一下是对的 那我的程序具体出错在哪呢?请指导一下 谢谢

第1个回答  2011-02-16
设a+b+c+d=1111,最大公约数是q,则a=xq,b=yq,c=zq,d=wq,于是
(x+y+z+w)q=1111,说明q是1111的约数。又因为a,b,c,d大于0,因此x+y+z+w>=4,要使q最大,则要使x+y+z+w最小,即寻找1111的大等于4的最小的因数。而1111=11*101,其大等于4的最小因数为11,因此取x+y+z+w=11,q=101即可。

比如x=1,y=2,z=3,w=5,这四个数是101,202,303,505,加起来等于1111,最大公约数是101.
第2个回答  2011-02-15
有语法错误,也有算法逻辑错误,看我修改后的代码。

# include <stdio.h>
void main()
{
int maxyue(int x,int y);
int a,b,c;
scanf("%d %d",&a,&b);
c=maxyue(a,b);
printf("c=%d\n",c);
}
int maxyue(int x,int y)
{
int z,t,m, i;
if(x<y)
{
t=x;x=y;y=t;
}

printf("x %d y %d\n",x, y);
for (i = 1; i <= y; i++)
{
if (x%i==0 && y%i==0)
{
m = i;
}
}
z=m;
printf("z=%d\n",z);
return(z);

}

执行的时候输入两个数字的方法为
15 6
两个数字直接用空格分隔即可。本回答被网友采纳

...高手们我错在哪 这是一道求最大公约数的题目。。 Error:Declaration s...
比如x=1,y=2,z=3,w=5,这四个数是101,202,303,505,加起来等于1111,最大公约数是101.

相似回答
大家正在搜