第一个题排序的是a[0],a[2],a[4],a[6],a[8],有i+=2可以得出来,然后由if(a[i]可知,是按从打到小排
第二题答案给错了 应该是5,4,3,2,1,第一次i=0,j=4,递归一次后,i=1,j=3,继续交换,然后i=2,j=2,结束
第三题pc是数组地址,第一次先输出c[0],然后pc++,指向下一个位置,c[1]小于c+2,继续输出,然后c[2],等于c+2
#include
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i
t=a[i];a[i]=a[j];a[j]=t;
}
}
void ff(int a[],int i, int j)
{ int t;
if(i
t=a[i];a[i]=a[j];a[j]=t;
ff(a,i+1,j-1);
}
}
void main()
{
int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
int a3[5]={1,2,3,4,5};
sort(aa,10);
for(i=0;i<10;i++)
printf("%d ",aa[i]);
printf("\n");
ff(a3,0,4);
for(i=0;i<5;i++)
printf("%d,",a3[i]);
printf("\n");
}
错误都改过来了
1,9 2 7 4 5 6 8 1 10
2,5 4 3 2 1
3,pc=c;pc
感觉 你那张纸 手动跑一下程序不就出来了啊!