C语言的数组倒置

版权声明:请尊重每一个人的劳动成果 https://blog.csdn.net/jamenu/article/details/83786716

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;
}

这是简单的一维数组的倒置,也可以衍生到二维数组中去,只不过要多一层的内循环,按行进行倒置。

猜你喜欢

转载自blog.csdn.net/jamenu/article/details/83786716