大家好,又见面了,我是你们的朋友全栈君。
数组反转是数组常见操作。大概来写一写数组反转添加上自己的理解注释。
#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("%d\t",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("%d\t",a[j]);
}
printf("\n");
}
执行结果:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136686.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...