You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:27:21