你的程序中,如果一个数是另一个数的倍数的话,那么d不会被赋值,这是输出的d的值是不可预知的,可将d的值初始化为较小数的值。其次,你的func函数没有返回值。
#include
#include
int num,arr[100];
int get_max(int a,int b)
{
int x,y,ans1,ans2;
x=a;y=b;
while(x%y)
{
ans1=x%y;
ans2=ans1-y;
x=y;
if(ans1<(-ans2))
y=ans1;
else
y=-ans2;
}
return y;
}
int main()
{
int ans;
printf("请输入整数的个数:");
scanf("%d",&num);
if(num<2||num>100)
{
printf("非法输入!\n");
exit(1);
}
for(int i=0;i
ans=get_max(arr[0],arr[1]);
for(i=2;i
printf("(%d",arr[0]);
for(i=1;i
printf(")=%d\n",ans);
return 0;
}
#include
int func(int a,int b);
int main(void){
int i,j;
scanf("%d%d",&i,&j);
func(i,j);
return 0;
}
int func(int a,int b) {
int i,j,c;
if(a>b) i=a,j=b;
else i=b,j=a;
c=i%j;
while(c!=0){
i=j;
j=c;
c=i%j;
}
printf("%d",j);
}
不需要判断a,b的大小:http://zhidao.baidu.com/link?url=-dEdv1YRmAQVKWoaZt-Q1ZTKMGkjUeMtflDOGEZu-7KXV_cYCOt2vDzEb-l0EhELyWdFySSCgfoIpOk-J2VPla