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

多维数组问题:索引越界,如何创建含负数的300元素数组

嘿,我来帮你捋捋这俩问题哈~

先搞定「数组越界」报错

你遇到的 Index was outside the bounds of the array 错误,本质就是访问了数组不存在的索引。举个例子:你创建了300个元素的数组,它的索引范围是 0 到 299(因为数组索引从0开始计数),要是你写了 array[300] 或者更高的索引,肯定就会触发这个报错。

建议先检查这几个地方:

  • 循环遍历数组时,是不是把终止条件写成了 i <= 300 而不是 i < 300?
  • 多维数组的话,是不是搞混了维度的长度?比如二维数组 [10,30](总300元素),行索引只能到9,列索引只能到29,别写错了。
  • 有没有手动指定索引时,不小心写了超过数组长度的数字?
创建包含负数的300元素数组

下面给你几种常用的实现方式,拿C#举例(毕竟这个报错是.NET生态里的常见问题),你可以参考适配自己的语言:

1. 手动指定部分负数

如果需要自定义哪些位置是负数,剩下的用默认值填充:

// 一维数组,直接声明长度为300
int[] myArray = new int[300];
// 给指定索引赋值负数
myArray[5] = -3;
myArray[20] = -17;
// 其他未赋值的元素默认是0,你也可以继续添加更多负数

2. 随机生成包含正负的数组

要是想快速生成一堆混合正负的随机数,比如范围在 -100 到 100 之间:

Random rand = new Random();
int[] myArray = new int[300];
for (int i = 0; i < myArray.Length; i++)
{
    // Next(min, max) 生成的数包含min,不包含max,所以要到100的话写101
    myArray[i] = rand.Next(-100, 101);
}

3. 多维数组的情况(如果用的是多维)

如果是多维数组(比如10行30列,总300元素),同样可以加负数,同时注意索引范围:

// 二维数组,10行×30列=300元素
int[,] multiArray = new int[10, 30];
// 手动给某个位置设负数
multiArray[3, 12] = -25;
// 或者循环填充随机正负值
Random rand = new Random();
for (int row = 0; row < multiArray.GetLength(0); row++)
{
    for (int col = 0; col < multiArray.GetLength(1); col++)
    {
        multiArray[row, col] = rand.Next(-50, 50);
    }
}

最后再提个小建议:不管是一维还是多维数组,尽量用数组自带的长度属性(比如一维用 array.Length,多维用 array.GetLength(n),n是维度序号)来控制循环边界,别硬写数字,这样后续改数组长度时就不容易再出越界问题啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:09:14