2015-10-06 5 views
0

Я хотел бы знать, чтобы найти номер, который был введен пользователем, чтобы число было напечатано. идея состоит в том, чтобы читать слева направо и сверху вниз и снизу вверх. Вот мой код до сих пор.Как найти значения в многомерном массиве

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace opgave1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 


      int R = 8; 
      int K = 10; 
      int[,] matrix = new int[R, K]; 

      PrintMatrix(matrix, R, K); 



      Console.Write("give a number: "); 
      int nummer = int.Parse(Console.ReadLine()); 
//TODO TDO TODOOD 


      Console.ReadKey(); 


     } 


     private static void PrintMatrix(int[,] matrix, int R, int K) 
     { 

      Random random = new Random(); 
      for (int h = 0; h < R; h++) 
      { 

       for (int k = 0; k < K; k++) 
       { 
        matrix[h, k] = random.Next(1, 101); 
        Console.Write("{0,3}", matrix[h, k]); 

       } 
       Console.WriteLine(); 


      } 
     } 



    } 
} 

ответ

0

В основной программе заменить Console.ReadKey() по:

int num = Convert.ToInt32(Console.ReadLine()); 

Один из способов решить это с помощью грубой силы. Пройдите через всю матрицу в вложенных циклах и найдите элемент один за другим. В C# вам не нужно передавать длину и ширину массива, поэтому пропуская R и K, вы использовали в своей функции PrintMatrix() и вычисляли ее из самой матрицы ввода.

 private static void Print(int[,] matrix, int num) 
    { 

     Random random = new Random(); 
     int R = matrix.GetLength(0); 
     int K = matrix.GetLength(1); 
     for (int h = 0; h < R; h++) 
     { 

      for (int k = 0; k < K; k++) 
      { 
       if(matrix[h, k] == num) 
        Console.Write("{0,1}", h,k); 

      } 
      Console.WriteLine(); 


     } 
    } 

Другим способ заключается в использовании HashMap, где вы можете предобработку созданной матрицы и сохранить матричный элемент в виде ключа, а индексы по стоимости.

Смежные вопросы