tc 把数组元素倒过来

来源:百度知道 编辑:UC知道 时间:2024/05/23 22:54:15
main()
{
int swap(int *p1,int l);
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *p,i;
p=a;
swap(*p,10);
p=a;
for(i=0;i<10;i++)
printf("%d",*p++);
}
int swap(int *p1,int l)
{
int temp=0,*j;
j=p1+l-1;
for(;p1!=j;p1++,j--)
{
temp=*p1;
*p1=*j;
*j=temp;
}
return;
}

for(;p1!=j;p1++,j--)
这句有问题,比如当p1=5,j=6,p1++和j--后,p1=6,j=5,此时继续交换,导致会在数组元素为偶数时出错,你这个程序在数组元素为奇数个时;可以运行。
这样改:for(;p1<=j,p1++,j--)