数组逆序存放。
数组元素为奇数,就只有最中间的元素不用替换。
数组元素为偶数,从头到尾全替换。
用指针时,拿出(a,b,c)三个指针变量,a指针指向数组第一个元素,b指针指向数组最后一个元素,c指针就指向数组最中间的元素。
用循环把指针a和指针b替换,循环到中间元素序号时就结束。
#include<stdio.h>
#define N 6 //宏定义N 为6,下面的 N 都是6 的替身。
int main()
{void inv(int *x,int n);
int a[N];
int i;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
inv(a,N);
for(i=0;i<N;i++)
printf("%6d",a[i]);
return 0;
}
//定义函数
void inv(int *x,int n)
{
/*
x 为数组首元素,指针 i 指向数组第一个元素,指针 j 指向数组最后一个元素 。
指针 p 为数组的中间元素,中间的元素不用交换。
*/
int *i,*j,t,*p;
i=x,j=x+n-1,p=x+(n-1)/2;
for(;i<=p;i++,j--)
{
t=*i;
*i=*j;
*j=t;
}
}