Я пишу программу для печати двумерного матричного массива, заполненного случайными числами. Пользователь вводит число, и метод ищет позицию в массиве сверху вниз, а затем слева направо, но я застрял, потому что я сбит с толку, как вернуть класс, который я создал в другом методе, чтобы использовать местоположение в моем главном способ.
Теперь я попытался добавить строки ++ и столбцы ++, если введенный номер отсутствует в этой конкретной строке или столбце, и разорвать цикл, когда число найдено.
public class Position
{
public int row;
public int column;
}
class Program
{
static void Main(string[] args)
{
Program myProgram = new Program();
myProgram.Start();
}
void Start()
{
int[,] matrix = new int[6, 6];
PrintMatrix(matrix);
Console.Write("Enter a number you're looking for: ");
int SearchingNumber = int.Parse(Console.ReadLine());
SearchingNumber(matrix, SearchingNumber);
Position loc = new Position();
Console.WriteLine($"SearchingNumber {SearchingNumber} is located the first time on location: {loc}");
}
//Matrix Random number
void InitMatrixRandom(int[,] matrix, int min, int max)
{
Random rnd = new Random();
for (int r = 0; r < matrix.GetLength(0); r++)
{
for (int c = 0; c < matrix.GetLength(1); c++)
{
matrix[r, c] = rnd.Next(min, max);
}
}
}
//Matrix writing
void PrintMatrix(int[,] matrix)
{
InitMatrixRandom(matrix, 1, 100);
for (int r = 0; r < matrix.GetLength(0); r++)
{
for (int c = 0; c < matrix.GetLength(1); c++)
{
Console.Write(matrix[r, c] + "\t");
}
Console.WriteLine();
}
}
//Matrix positie
Position SearchingNumber(int[,] matrix, int zoekGetal)
{
InitMatrixRandom(matrix, 1, 100);
Position loc = new Position();
for (int r = 0; r < matrix.GetLength(0); r++)
{
if (r != zoekGetal)
{
loc.row++;
}
for (int k = 0; k < matrix.GetLength(1); k++)
{
if (k != zoekGetal)
{
loc.column++;
}
else if (matrix[r, k] == zoekGetal)
{
break;
}
}
}
return loc;
}
}