我正在使用自动增量数组,但这种逻辑对于锯齿状数组无效:
namespace TESETER
{
class Program
{
static void Main(string[] args)
{
int q, moj = 0;
int[][] arr = new int[1][];
int[][] b;
b = arr;
arr[0] = new int[1];
b[0] = arr[0];
while (moj < 3)
{
Console.WriteLine("interger");
int.TryParse(Console.ReadLine(), out q);
if (moj < 1)
{ arr[0][0] = q; moj++; }
else
{
moj++; arr[0] = new int[moj];
for (int i = 0; i < moj - 1; i++)
{
arr[0][i] = b[0][i];
}
arr[0][moj - 1] = q;
b = arr;
b[0] = arr[0];
}
}
Console.WriteLine(arr[0][0]);
Console.WriteLine(arr[0][1]);
Console.WriteLine(arr[0][2]);
Console.ReadLine();
}
}
}
输出:整数7整数8整数9 009
如果输入是789
,请帮助我输出789答案 0 :(得分:0)
我建议使用List<int>
而不是锯齿状数组。当您向其添加新元素时,它会自动调整大小。
如果必须在此处使用锯齿状数组,请不要使用赋值来保留以前的值。请改用Array.Copy
。
using System;
namespace TESETER
{
class Program
{
static void Main(string[] args)
{
int q, moj = 0;
int[][] arr = new int[1][];
int[][] b = new int[1][];
// b = arr;
// arr[0] = new int[1];
// Array.Copy(arr[0], b[0]);
while (moj < 3)
{
Console.WriteLine("interger");
int.TryParse(Console.ReadLine(), out q);
if (moj < 1)
{ arr[0][0] = q; moj++; }
else
{
moj++; arr[0] = new int[moj];
for (int i = 0; i < moj - 1; i++)
{
arr[0][i] = b[0][i];
}
arr[0][moj - 1] = q;
Array.Copy(arr, b);
//b[0] = arr[0];
}
}
Console.WriteLine(arr[0][0]);
Console.WriteLine(arr[0][1]);
Console.WriteLine(arr[0][2]);
Console.ReadLine();
}
}
}