Поиск элемента в не отсортированном массиве - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Необходимо написать программу, которая генерирует массив с помощью RND, а затем найти индекс елемента, который пользователь введёт с клавиатуры (Если честно - понятия не имею как организовать вывод сообщения о том, что число не найдено, из кода станет ясно почему). Основная проблема в том, что при запуске программы создаётся массив, а затем , когда пользователь вводит число, программа выводит индекс первого элемента, и выбрасывает ошибку о выходе за пределы массива.. вообщем вот код и скрин ошибки. Если кто в силах помочь - заранее спасибо)))) Ругается на
while (arr[i, j] != search)
      static void Main(string[] args)
        {
            int row = 10;
            int column = 10;
            int search;
            /////////////////////Create matrix///////////////////
            int[,] arr = new int[row, column];
            Random rnd = new Random();
 
            for (int i = 0; i < row; ++i, Console.WriteLine(""))
                for (int j = 0; j < column; ++j)
                {
                    arr[i, j] = rnd.Next(0, 10);
                    Console.Write(arr[i, j] + " ");
                }
 
            ///////////////////////Searching//////////////////////
            Console.WriteLine("Enter a number whitch you want to search: ");
            search = int.Parse(Console.ReadLine());
 
            for (int i = 0; i < row; ++i, Console.WriteLine(""))
                for (int j = 0; j < column; ++j)
                {
                    arr[0, 0] = search;
                    while (arr[i, j] != search)
                    {
                        i -= 1;
                        j -= 1;
                    }
                    Console.Write("["+i.ToString()+",");
                    Console.Write(j.ToString()+"] ");

                }

            Console.ReadKey();
        }

Решение задачи: «Поиск элемента в не отсортированном массиве»

textual
Листинг программы
        static void Main(string[] args)
        {
            int rows = 10;
            int columns = 10;
            int[,] arr = new int[rows, columns];
 
            // Заполняем массив
            Random rnd = new Random();
            for (int j = 0; j < rows; j++)
                for (int i = 0; i < columns; i++)
                    arr[j, i] = rnd.Next(0, 10);
 
            // считываем число
            int scanInt = Int32.Parse(Console.ReadLine());
 
            // ищем
            int indexI = -1;
            int indexJ = -1;
            for (int j = 0; j < rows; j++)
                for (int i = 0; i < columns; i++)
                    if (arr[j,i] == scanInt)
                    {
                        indexI = i;
                        indexJ = j;
                    }
 
            // выводим
            if (indexI > -1)
                Console.WriteLine("[{0}; {1}]", indexJ, indexI); // Форматная строка. Прочитайте про неё.
            else
                Console.WriteLine("Number not found");
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы