C# 二维数组读取键盘错误
C# 2D Arrays read from keyboard error
我有一个错误:"Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object." 在线 "v[i][j]=Convert.ToInt32(Console.ReadLine());" 对这种面向对象的语言有点陌生,我不确定这意味着什么。谢谢!
static void Main(string[] args)
{
int m, n, i, j;
int[][] v=new int[10][];
n=Convert.ToInt32(Console.ReadLine());
m=Convert.ToInt32(Console.ReadLine());
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
Console.WriteLine("v[{0}][{1}]= ", i, j);
v[i][j]=Convert.ToInt32(Console.ReadLine());
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
Console.WriteLine("{0} ", v[i][j]);
Console.WriteLine();
}
}
我认为你需要改变这个:
int[][] v=new int[10][];
因为该代码没有为二维数组保留内存。
应该是:
int m, n, i, j;
n = Convert.ToInt32(Console.ReadLine());
m = Convert.ToInt32(Console.ReadLine());
int[,] v = new int[n,m];
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
Console.WriteLine("v[{0}][{1}]= ", i, j);
v[i,j] = Convert.ToInt32(Console.ReadLine());
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
Console.WriteLine("{0} ", v[i,j]);
Console.WriteLine();
}
您可以展示 this tutorial 来自 Microsoft 的多维数组。
使用 C# 的更好方法是将其声明为二维数组。
int [,] v = new int[10,10];
然而,在这种情况下,您稍后会找到 n 和 m,因此它应该显示为:
int [,] v = new int[n,m];
我有一个错误:"Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object." 在线 "v[i][j]=Convert.ToInt32(Console.ReadLine());" 对这种面向对象的语言有点陌生,我不确定这意味着什么。谢谢!
static void Main(string[] args)
{
int m, n, i, j;
int[][] v=new int[10][];
n=Convert.ToInt32(Console.ReadLine());
m=Convert.ToInt32(Console.ReadLine());
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
Console.WriteLine("v[{0}][{1}]= ", i, j);
v[i][j]=Convert.ToInt32(Console.ReadLine());
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
Console.WriteLine("{0} ", v[i][j]);
Console.WriteLine();
}
}
我认为你需要改变这个:
int[][] v=new int[10][];
因为该代码没有为二维数组保留内存。
应该是:
int m, n, i, j;
n = Convert.ToInt32(Console.ReadLine());
m = Convert.ToInt32(Console.ReadLine());
int[,] v = new int[n,m];
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
Console.WriteLine("v[{0}][{1}]= ", i, j);
v[i,j] = Convert.ToInt32(Console.ReadLine());
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
Console.WriteLine("{0} ", v[i,j]);
Console.WriteLine();
}
您可以展示 this tutorial 来自 Microsoft 的多维数组。
使用 C# 的更好方法是将其声明为二维数组。
int [,] v = new int[10,10];
然而,在这种情况下,您稍后会找到 n 和 m,因此它应该显示为:
int [,] v = new int[n,m];