C语言中的数组倒置的方法可以分为两种;
1.设以数组A[],另设一数组B[],我们将A[]的元素倒序赋给B[],再将B[]顺序赋给A[],就完成了一组交换,这种方法比较直观,但我们还要在内存中划定一片区域给B[],有一定缺陷。
如下
#include <stdio.h>
int main()
{
int a[10],b[10];
int i;
for(i=0;i<10;i++) //按0~9赋值一个数组//
{
a[i]=i;
}
for(i=0;i<10;i++)//将a[]倒序赋值给b[]
{
b[i]=a[9-i];
}
for(i=0;i<10;i++)//再换过来//
{
a[i]=b[i];
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);//打印//
}
return 0;
}
2.第二种方法我们要观察互换该数组内的前后元素,如下图
#include <stdio.h>
int main()
{
int t, i;
int a[10];
for(i = 0;i < 10;i++)//我们定义一个数组并赋值为1~10//
{
a[i] = i;
}
for(i = 0;i <= 5;i++)//数组中下标和为9的两个元素互换,要换10/2=5次,若数组长度为奇数则为n/2-1次//
{
t = a[i];//进行互换//
a[i] = a[9-i];
a[9-i] = t;
}
for(i = 0;i < 10;i++)
{
printf("%-3d",a[i]);//打印结果//
}
printf("\n");
return 0;
}
这是简单的一维数组的倒置,也可以衍生到二维数组中去,只不过要多一层的内循环,按行进行倒置。