C语言如何实现二维数组所有元素单行打印而非矩阵格式输出
实现方法
原代码无法满足需求有两个核心原因:一是二维数组容量不足,二是输出逻辑主动插入了换行符,按以下规则修改即可:
- 调整数组维度:原定义
int disp[2][3]仅能存储6个整数,无法容纳1-10共10个输入值,将其修改为int disp[2][5],总容量10,匹配输入规模;同步修改两层循环的边界条件,内层列循环的判断条件从j < 3改为j < 5。 - 删除输出阶段的换行逻辑:移除内层循环中
if (j == 2) { printf("\n"); }这段主动打印换行的代码,等所有元素遍历输出完成后,再统一打印一次换行即可,保证所有元素在同一行输出。
修正后的完整可运行代码:
#include <stdio.h> int main() { /* 定义2行5列的二维数组,共可存储10个整数 */ int disp[2][5]; int i, j; // 逐行逐列读取输入 for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { printf("Enter value for disp[%d][%d]:", i, j); scanf("%d", &disp[i][j]); } } // 单行输出所有元素 printf("Two Dimensional array elements:\n"); for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { printf("%d ", disp[i][j]); } } printf("\n"); return 0; }
运行程序后依次输入1到10,最终就会输出单行排列的1 2 3 4 5 6 7 8 9 10。如果需要去掉行尾多余的空格,可以追加判断仅在非最后一个元素后打印空格,不影响单行输出的核心效果。
内容的提问来源于stack exchange,提问作者user19306986
相关产品推荐
相关产品推荐

