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

C#实现用户指定行列尺寸并填充随机数的二维数组代码求助

帮你搞定二维数组随机填充的问题

嘿,刚入门编程踩这些坑太正常了,我来帮你把代码里的问题捋清楚,再给你一个能跑的版本~

首先,咱先拆解下你当前代码里的几个核心问题:

  • 行列数的定义完全错了:你用char row = 'i';这种方式,'i'是字符,对应的ASCII码是105,这根本不是你要让用户输入的行列数,而且你完全没做“让用户输入行列数”的逻辑!
  • 二维数组的遍历条件不对:twoDarray.Length是数组里所有元素的总数,遍历行应该用twoDarray.GetLength(0)(获取行数),遍历列用twoDarray.GetLength(1)(获取列数),不然循环会直接超出数组索引范围,报错。
  • 逻辑搞反了:你需求是用随机数填充,但代码里写的是Convert.ToInt32(In.ReadLine())——这是读取用户输入,而且In应该是Console才对。

接下来是修正后的完整代码,我加了注释方便你理解:

// 先让用户输入行数
Console.WriteLine("请输入二维数组的行数:");
// 读取输入并转换为整数,这里先做基础版,进阶可以加输入验证
int row = int.Parse(Console.ReadLine());

// 再让用户输入列数
Console.WriteLine("请输入二维数组的列数:");
int column = int.Parse(Console.ReadLine());

// 创建对应大小的二维数组
int[,] twoDarray = new int[row, column];

// 定义随机数的范围
int min = 0;
int max = 100;
Random randNum = new Random();

// 遍历每一行
for (int i = 0; i < twoDarray.GetLength(0); i++)
{
    // 遍历当前行的每一列
    for (int j = 0; j < twoDarray.GetLength(1); j++)
    {
        // 生成[min, max]范围内的随机数并赋值给数组元素
        twoDarray[i, j] = randNum.Next(min, max + 1);
        // 可选:打印每个元素,验证结果
        Console.Write(twoDarray[i, j] + "\t");
    }
    Console.WriteLine(); // 每一行结束换行
}

简单说下代码的执行流程:

  1. 先提示用户输入行数和列数,把输入的字符串转成整数;
  2. 用得到的行列数创建二维数组;
  3. 初始化随机数生成器;
  4. 嵌套循环遍历数组的每个位置,用randNum.Next(min, max+1)生成指定范围的随机数(注意Next方法是左闭右开,所以要+1才能包含max);
  5. 可选的打印步骤是帮你直观看到生成的数组结果。

如果想进阶的话,可以加个输入验证,比如用户输入非数字的时候提示重新输入,避免程序崩溃,不过先把基础功能跑通更重要~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:12:51