C语言如何实现输入数组与对应逆序数组的并排输出
问题解决方案
核心调整逻辑
你原代码的问题是分两次独立遍历打印原数组和逆序数组,自然会分成上下两部分输出。要实现并排对齐效果,只需要在同一轮循环里同时打印原数组第i位元素、和逆序对应位置的元素即可,无需额外创建逆序数组。
调整后完整代码
#include <stdio.h> #define N 10 int main(){ int a[N], i; for(i = 0; i < N; i++){ scanf("%d", &a[i]); } // 打印表头(可选,方便区分数组) printf("原数组\t逆序数组\n"); for(i = 0; i < N; i++){ // 用固定宽度的格式控制符保证对齐 printf("%4d\t%4d\n", a[i], a[N - 1 - i]); } return 0; }
关键优化点说明
- 打印时使用
%4d格式控制符,固定每个数字占4个字符宽度,无论输入数字是几位都能保证列对齐,可根据实际输入数字的长度调整数值 - 逆序位置的元素直接通过下标
N-1-i计算获取,不需要额外开辟内存存储逆序数组,资源占用更低 - 两列之间用制表符
\t分隔,也可替换为多个空格自定义间距
内容的提问来源于stack exchange,提问作者lukn
相关产品推荐
相关产品推荐

