c# 数组索引超出界限,帮我看下怎么改? 求解释

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespa... using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication14
{
class Program
{
static void Main(string[] args)
{
int n ;
int m;
int i;
int j;
Console.WriteLine( "请输入行");
n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入列");
m= Convert.ToInt32(Console.ReadLine());

int[,] numb = new int[, ] { };
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{

Console.WriteLine("请输入第{0}行,第{1}列的元素", i, j);
numb[i, j] = Convert.ToInt32(Console.ReadLine());

}

}
}
}
}
展开
 我来答
仙戈雅3n
2015-10-16 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:907万
展开全部
static void Main(string[] args)
        {
            int n;
            int m;
            int i;
            int j;
            Console.WriteLine("请输入行");
            n = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入列");
            m = Convert.ToInt32(Console.ReadLine());

            int[,] numb = new int[n,m]; // 此处有问题,需要指定2维数组大小 
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < m; j++)
                {

                    Console.WriteLine("请输入第{0}行,第{1}列的元素", i, j);
                    numb[i, j]=Convert.ToInt32(Console.ReadLine());

                }

            }
        }

 

另外,C#在定义二维数组时,若尾部跟随了"{}"花括号意味着你要初始化它,即定义时就进行集合初始化,此时则可以忽略数组大小,形如下面的形式就是正确的:

int[,] numbers = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };// 正确。
追问
谢谢  我的意思是想我定义二维数组的行列,进而输入,而不是直接定义数组并且直接给出值。
所以我才定义N M 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goddwtfnai
推荐于2018-04-20 · 超过26用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:62.3万
展开全部
二维数组定义错误:
int[,] numb = new int[, ] { };
这样定义表示numb数组里面没有值;
改为: int[,] numb = new int[n,m];正解;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式