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

C#二维数组填充:如何用循环实现外层两行两列设1其余设0?

实现二维数组的边框填充需求

核心思路是先初始化全0数组,再通过循环给指定位置赋值为1。以下用Python和Java两种常见语言演示,逻辑通用:

实现逻辑拆解

需要设为1的位置分为两类:

  1. 数组的前两行和最后两行,整行元素全部为1;
  2. 中间行的前两列和最后两列,仅这些位置为1,其余保持0。

Python 代码示例

# 定义数组的行数和列数(可根据需求修改)
rows = 10
cols = 20

# 初始化全0二维数组
arr = [[0 for _ in range(cols)] for _ in range(rows)]

# 循环处理每一行
for i in range(rows):
    # 前两行或最后两行:整行设为1
    if i < 2 or i >= rows - 2:
        for j in range(cols):
            arr[i][j] = 1
    else:
        # 中间行:仅最外侧两列设为1
        for j in range(cols):
            if j < 2 or j >= cols - 2:
                arr[i][j] = 1

# 按示例格式打印结果
for row in arr:
    print(''.join(map(str, row)))

Java 代码示例(更简洁的条件判断写法)

public class BorderArray {
    public static void main(String[] args) {
        int rows = 10;
        int cols = 20;
        int[][] arr = new int[rows][cols];

        // 一次循环完成所有赋值
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                // 判断是否为需要设为1的位置
                if (i < 2 || i >= rows - 2 || j < 2 || j >= cols - 2) {
                    arr[i][j] = 1;
                } else {
                    arr[i][j] = 0;
                }
            }
        }

        // 打印输出
        for (int[] row : arr) {
            for (int num : row) {
                System.out.print(num);
            }
            System.out.println();
        }
    }
}

两种写法都能实现你要的效果,第二种Java写法通过一个条件判断直接覆盖所有需要设为1的场景,更适合新手理解逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:02:39