逆序可以看作第一个值与末尾的值交换,然后第二个值与倒数第二个值交换,以此类推…
设数组中共有n个值,则有a[0]到a[n-1]。
第一次交换时,可以令i=0,让a[0]与a[n-1]交换。
第二次交换时,i自加1,即a[1]与a[n-1-1]交换。
第三次交换时,i又加1,a[2]与a[n-1-1-1]交换。
可以得到规律:即a[i]与a[n-1-i]交换。
每次交换两个值,当交换次数为数组总个数的一半时,整个数组也就逆序排好了。
#include <stdio.h>
#define n 5
int main()
{
int a[n],i,t;
for(i=0;i<n;i++)//数组赋值
scanf("%d",&a[i]);
for(i=0;i<n/2;i++)//通中间值t交换,共交换n/2次
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(i=0;i<n;i++)//打印数组
printf("%d ",a[i]);
printf("\n");
return 0;
}