Поиск элемента в не отсортированном массиве - 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");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д