【发布时间】:2021-11-10 09:16:04
【问题描述】:
任务是我需要检查数组(二维数组)中的数组是否为回文
问题是我在第 40 行遇到“超出范围”异常,无法弄清楚如何告诉计算机在那里进行正确计算:if (arr[i, j] != arr[arr.GetLength(1) - i, j - 1])
我需要将 if (arr[i] != arr[n - i - 1]) 解释为二维数组。
到目前为止,这是我的代码:```
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
int n;
n = Convert.ToInt32(Console.ReadLine());
int[,] arr = new int[n, n];
for (int i = 0; i < arr.GetLength(0); i++)
{
for(int j = 0; j < arr.GetLength(1); j++)
{
arr[i, j] = rnd.Next(1, 15);
}
}
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.WriteLine(arr[i, j]);
}
}
int flag = 0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j <= arr.GetLength(1) / 2 && n != 0; j++)
{
if (arr[i, j] != arr[arr.GetLength(1) - i, j - 1])
{
Console.WriteLine(i);
flag = 1;
break;
}
}
}
if (flag == 1)
{
Console.WriteLine("pali");
}
else
{
Console.WriteLine("not pali");
}
}
}
【问题讨论】:
标签: c# arrays multidimensional-array palindrome