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");
}
执行结果:
上一篇: 比特翻转 - 为什么会发生比特翻转?