Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 2d数组在矩阵中查找最后一个相等的数字_C#_Arrays_Matrix_Methods_Position - Fatal编程技术网

C# 2d数组在矩阵中查找最后一个相等的数字

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

我想在矩阵的列和行中找到最后一个相等的数字位置。我认为我在SearchNumberBackwards方法中的计算是不正确的。最后,SearchNumberBackwards方法需要找到给定的相等数字的最后一个位置,并将其发送给start方法

我将给出数字,该方法需要找到矩阵中最后一个相等的数字位置

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;
    }
}