C# 2d数组在矩阵中查找最后一个相等的数字
我想在矩阵的列和行中找到最后一个相等的数字位置。我认为我在SearchNumberBackwards方法中的计算是不正确的。最后,SearchNumberBackwards方法需要找到给定的相等数字的最后一个位置,并将其发送给start方法 我将给出数字,该方法需要找到矩阵中最后一个相等的数字位置C# 2d数组在矩阵中查找最后一个相等的数字,c#,arrays,matrix,methods,position,C#,Arrays,Matrix,Methods,Position,我想在矩阵的列和行中找到最后一个相等的数字位置。我认为我在SearchNumberBackwards方法中的计算是不正确的。最后,SearchNumberBackwards方法需要找到给定的相等数字的最后一个位置,并将其发送给start方法 我将给出数字,该方法需要找到矩阵中最后一个相等的数字位置 using System; 名称空间分配2 { 班级计划 { 私有静态void Main() { 程序myProgram=新程序(); myProgram.Start(); } private vo
using System;
名称空间分配2
{
班级计划
{
私有静态void Main()
{
程序myProgram=新程序();
myProgram.Start();
}
private void Start()
{
int[,]矩阵=新的int[12,11];
InitMatrixRandom(矩阵,1100);
显示矩阵(矩阵);
控制台。写入(“输入(要搜索的)号码):”;
int number=int.Parse(Console.ReadLine());
Position posFirst=新位置();
位置posLast=新位置();
posFirst=搜索编号(矩阵,编号);
posLast=SearchNumberBackwards(矩阵,数字);
WriteLine($“Number{Number}位于位置[{posFirst.row},{posFirst.column}]);
WriteLine($“在位置[{posLast.row},{posLast.column}]处(最后)找到编号{Number}”);
}
void InitMatrixRandom(int[,]矩阵,int最小值,int最大值)
{
随机rnd=新随机();
for(int row=0;row
}
private void Start()
{
int[,] matrix = new int[12, 11];
InitMatrixRandom(matrix, 1, 100);
DisplayMatrix(matrix);
Console.Write("Enter a number (to search for):");
int number = int.Parse(Console.ReadLine());
Position posFirst = new Position();
Position posLast = new Position();
posFirst = SearchNumber(matrix, number);
posLast = SearchNumberBackwards(matrix, number);
Console.WriteLine($"Number {number} is found (first) at position [{posFirst.row},{posFirst.column}]");
Console.WriteLine($"Number {number} is found (last) at position [{posLast.row},{posLast.column}]");
}
void InitMatrixRandom(int[,] matrix, int min, int max)
{
Random rnd = new Random();
for (int row = 0; row < matrix.GetLength(0); row++)
{
for (int col = 0; col < matrix.GetLength(1); col++)
{
matrix[row, col] = rnd.Next(min, max);
}
}
}
private void DisplayMatrix(int[,] matrix)
{
for (int row = 0; row < matrix.GetLength(0); row++)
{
for (int col = 0; col < matrix.GetLength(1); col++)
{
Console.Write($" {matrix[row, col],2} ");
}
Console.WriteLine();
}
Console.WriteLine();
}
Position SearchNumber(int[,] matrix, int number)
{
Position posFirst = new Position();
for (int row = 0; row < matrix.GetLength(0); row++)
{
for (int col = 0; col < matrix.GetLength(1); col++)
{
if (matrix[row, col] == number)
{
posFirst.column = col + 1;
posFirst.row = row + 1;
break;
}
}
}
return posFirst;
}
Position SearchNumberBackwards(int[,] matrix, int number)
{
Position posLast = new Position();
for (int row = 12; row < matrix.GetLength(0); row--)
{
for (int col = 11; col < matrix.GetLength(1); col--)
{
if (matrix[row, col] == number)
{
posLast.column = col + 1;
posLast.row = row + 1;
}
}
}
return posLast;
}
}