Запросить индекс элемента массива у пользователя и при нахождении вывести его, если нет, то вывести ошибку

Рейтинг: 0Ответов: 1Опубликовано: 21.05.2023

Напишите программу, которая запрашивает у пользователя 5 целых чисел и сохраняет их в массиве. После программа сортирует массив по возрастанию и выводит отсортированный массив на экран. Затем программа запрашивает у пользователя число и находит его индекс в массиве. Если число не найдено, программа выводит сообщение об ошибке.

С частью по запросу и выводу массива по возрастанию у меня получилось, а вот найти и вывести индекс числа - не получается. Вся проблема в том, что при сравнении ввода от пользователя и данных массива пишет, что нельзя преобразовать данные, то есть при сравнении будут разные типы данных.

int[] numbers = new int[5];

Console.WriteLine("Введите 5 чисел");


for (int i = 0; i < numbers.Length; i++)
{
    int userInput = Convert.ToInt32(Console.ReadLine());
    numbers[i] = userInput;
}

Array.Sort(numbers);

for (int j = 0; j < numbers.Length; j++)
{
    
    Console.Write(numbers[j] + " ");
}


Console.WriteLine("Введите число");
int userInput2 = Convert.ToInt32(Console.ReadLine);


for (int m = 0; m < numbers.Length; m++)
{
    if (numbers[m] = userInput2)
    {
        Console.WriteLine($"Индекс числа {userInput2} будет {numbers.GetValue(userInput2)}");

    }

    else
    {
        Console.WriteLine("Ошибка ввода, попробуйте еще раз");

    }




}

Ответы

▲ 0Принят

Спасибо, разобралась. Вот итоговый код:

        int[] numbers = new int[5];

        Console.WriteLine("Введите 5 чисел");
        

        for (int i = 0; i < numbers.Length; i++)
        {
            int userInput = Convert.ToInt32(Console.ReadLine());
            numbers[i] = userInput;
        }

        Array.Sort(numbers);

        for (int j = 0; j < numbers.Length; j++)
        {
            
            Console.Write(numbers[j] + " ");
        }

        Console.WriteLine();

        Console.WriteLine("Введите число");
        int userInput2 = Convert.ToInt32(Console.ReadLine());



        for (int m = 0; m <= numbers.Length - 1; m++)
        {

            if (numbers[m] == userInput2)
            {
                Console.WriteLine($"Индекс числа {userInput2} будет {Array.IndexOf(numbers, userInput2)}");
                break;
            }

            if (numbers[m] == numbers[numbers.Length - 1])
            {
                Console.WriteLine("Ошибка ввода, попробуйте еще раз");
                break;
            }
        }