我改好了,你那个变量没初始化,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
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;
}
还有问题吗?
n=t;
t=m%n;
n为0?