求大神看看这段C语言代码。

2025-03-01 19:53:45
推荐回答(3个)
回答1:

我改好了,你那个变量没初始化,cnt
//题目是先把所给数组中的下标为奇数的项都去掉。然后再找出剩下的数的最大公约数。
//帮我看看是哪里错了吧,每次都运行出错,谢谢!

#include
#include
int gcd(int m,int n)
{
int t=m%n;
do{
m=n;
n=t;
t=m%n;
}while(t);
return n;
}

int Del_findgcd(int a[],int n,int *f)
{
int i,j,cnt;
for(i=j=0;i if(i%2==0)
a[j]=a[i];

for(cnt=j-1,cnt=1,*f=gcd(a[cnt],a[cnt-1]);cnt>=2;cnt--)
*f=gcd(a[cnt-2],*f);
return j;
}
int main(void)
{

int Array[10]={6,8,9,11,12,13,15,16,18,19},g,count;
count=Del_findgcd(Array,10,&g);
printf("The remained numbers are:");
for(count--;count>=0;count--)
printf("%d,",Array[count]);
printf("\b \n");
printf("max common divisor is %d.",g);
return 0;
}

回答2:

还有问题吗?

回答3:

n=t;
t=m%n;
n为0?