欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

C 语言中的数组反转

最编程 2024-03-20 16:22:34
...

大家好,又见面了,我是你们的朋友全栈君。

数组反转是数组常见操作。大概来写一写数组反转添加上自己的理解注释。

#include <stdio.h>
#define N 6

int main()
{ 
   
  int a[N] = { 
   0,1,2,3,4,5};
  int i;
  int t;
  int j;
  
//反转算法
  for(i=0;i<N/2;i++)
  { 
   
    t = a[i];
    a[i] = a[N-1-i];
    a[N-1-i] = t;

//遍历输出,每对换一对数值就打印一次数组
    for (j=0;j<N;j++)
    { 
   
      printf("%dt",a[j]);
    }
      printf("n");
  }
}

反转算法就是将第0个和最后一个(第N-1个)数值对换,第1个和第N-2个数值对换,依次类推,第i个和第N-1-i个数值对换。 如果数组元素是偶数个,正好是最中间两个元素数值对换;如果是奇数个元素,中间一个元素不需要对换,比如数组a共5个元素,i<N/2就是i<2,则a[0]和a[4]对换,a[1]和a[3]对换,a[2]保持原数值即可。

输出结果:

如果想直接获得反转之后的数组结果:

#include <stdio.h>
#define N 6

int main()
{ 
   
  int a[N] = { 
   0,1,2,3,4,5};
  int i;
  int t;
  int j;
  
//反转算法
  for(i=0;i<N/2;i++)
  { 
   
    t = a[i];
    a[i] = a[N-1-i];
    a[N-1-i] = t;
  }
  //遍历输出,数组反转之后结果输出
    for (j=0;j<N;j++)
    { 
   
      printf("%dt",a[j]);
    }
      printf("n");
}

执行结果: