题目:
比如输入:数组是1,2,3,4,5
反序后的结果是:5,4,3,2,1
实现代码如下
#include <stdio.h>
//用数组反序数组
void reserve1(int a[],int n){int m=(n+1)/2;int i=0;for(i;i<m;i++){int j=n-1-i;int temp=a[i];a[i]=a[j];a[j]=temp;}
}
//用指针进行反序数组
void reserve2(int *a,int n){int *p,*q,*length;int m;m=(n+1)/2;p=a;
// length=(a+n+1)/2; //这个地方不是length=(n+1)/2,要记得加上数组的首地址,不要写成这样(a+n+1)/2,//因为不能对a进行操作,只能进行偏移length=a+m;q=a+n-1;for(;p<length;p++,q--){int temp=*p;*p=*q;*q=temp;}
}
void main() { int a[5]={1,2,3,4,5};int *p;p=a;
// for(p;p<a+5;p++){
// printf("%d",*p);
// }int length;len