|
发表于 2016-12-11 22:21:42
|
显示全部楼层
本帖最后由 b84408190 于 2016-12-11 22:35 编辑
如果你是求公约数的话,你的算法我是没看懂的。我发一个,你可以参考下。
#include <stdio.h>
void main(void)
{
int x,y,z,i,m[10],n=0,gcd=1;
printf("请输入两个int数:");
scanf("%d%d",&x,&y);
if(x<y) /*判定x,y大小*/
{
z=x;
x=y;
y=z;
}
for(i=1;i<=x/2;i++) /*求余数同为0的除数,赋值给整除数数组m[10],并返回余数循环*/
{
if(x%i==0 && y%i==0)
{
m[n]=i;
n++;
x=x/i;
y=y/i;
i=1;
}
}
while(n>0) /*求出所有除数的积,便为最大公约数*/
{
gcd=gcd*m[n-1];
n--;
}
printf("两个数的公约数为:%d\n",gcd);
}
我是初学,语法不是太清楚,不知道对不:
1. 没找到你m的赋值。
2.函数的定义和引用没内部参数。你试下声明gcd(int a,int b),引用gcd(a,b); |
|