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

如何在C语言中为9×11二维数组的第一行和第一列赋值?

问题分析与修正代码

原代码的核心问题

  • 数组定义错误:int arr[i][j];中i和j未初始化,属于未定义行为。C语言里数组维度需是已知常量或已初始化变量,这里直接指定固定维度即可。
  • 填充逻辑错误:原代码用value++遍历填充所有元素,完全不符合“第一行、第一列单独填充,其余为0”的需求。
  • 语法错误:printf中的换行符应为\n,而非直接换行,否则编译会报错。

修正后的代码

假设你要创建9行11列的数组(即arr[9][11]),结合需求修正如下:

#include <stdio.h>

int main() {
    // 定义9×11的二维数组,初始化为全0
    int arr[9][11] = {0};
    int i, j;

    // 填充第一行(第0行):0到9(对应列0到9)
    for (j = 0; j < 10; j++) {
        arr[0][j] = j;
    }
    // 第一行第10列保持0,符合空白位置填充0的要求

    // 填充第一列(第0列):0到8(对应行0到8,因为数组只有9行)
    // 注:你提到的"填充0到11"与9行的数组维度矛盾,这里按实际行数填充0-8
    for (i = 0; i < 9; i++) {
        arr[i][0] = i;
    }

    // 打印数组,用%2d让输出对齐更易读
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 11; j++) {
            printf("%2d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

补充说明

如果你的实际需求是11行9列的数组(这样第一列可以填充0到10,更贴合你“0到11”的表述,可能是维度表述颠倒),可以调整数组定义和循环范围:

#include <stdio.h>

int main() {
    int arr[11][9] = {0};
    int i, j;

    // 第一行(0行)填充0到8(9列)
    for (j = 0; j < 9; j++) {
        arr[0][j] = j;
    }

    // 第一列(0列)填充0到10(11行)
    for (i = 0; i < 11; i++) {
        arr[i][0] = i;
    }

    // 打印数组
    for (i = 0; i < 11; i++) {
        for (j = 0; j < 9; j++) {
            printf("%2d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

内容的提问来源于stack exchange,提问作者issy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:55:15