Загрузка данных


using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("=== Поиск отсутствующих чисел (диапазон 0-20) ===\n");
        
        int size;
        
        // Проверка корректного ввода размера массива
        do
        {
            Console.Write("Введите размер массива (положительное число): ");
        } while (!int.TryParse(Console.ReadLine(), out size) || size <= 0);
        
        int[] numbers = new int[size];
        
        // Ввод элементов массива с проверкой диапазона 0-20
        Console.WriteLine($"\nВведите {size} чисел в диапазоне от 0 до 20:");
        for (int i = 0; i < size; i++)
        {
            int element;
            do
            {
                Console.Write($"Элемент {i + 1}: ");
                if (!int.TryParse(Console.ReadLine(), out element))
                {
                    Console.WriteLine("Ошибка: Введите целое число!");
                    element = -1; // Неверное значение
                    continue;
                }
                
                if (element < 0 || element > 20)
                {
                    Console.WriteLine($"Ошибка: Число должно быть от 0 до 20! Вы ввели {element}");
                }
            } while (element < 0 || element > 20);
            
            numbers[i] = element;
        }
        
        // Вывод введённого массива
        Console.Write("\nВведённый массив: ");
        for (int i = 0; i < size; i++)
        {
            Console.Write(numbers[i] + " ");
        }
        
        // Находим отсутствующие числа (от 0 до 20)
        bool[] found = new bool[21]; // Массив для отметки встреченных чисел (0-20)
        
        for (int i = 0; i < size; i++)
        {
            found[numbers[i]] = true; // Отмечаем числа, которые есть в массиве
        }
        
        // Собираем отсутствующие числа
        List<int> missingNumbers = new List<int>();
        for (int i = 0; i <= 20; i++)
        {
            if (!found[i])
            {
                missingNumbers.Add(i);
            }
        }
        
        // Вывод результатов
        Console.WriteLine("\n\n" + new string('=', 50));
        Console.WriteLine("\nРЕЗУЛЬТАТЫ:\n");
        
        if (missingNumbers.Count > 0)
        {
            Console.WriteLine($"Числа от 0 до 20, которые НЕ встречаются в массиве (всего {missingNumbers.Count} шт.):");
            Console.WriteLine(string.Join(", ", missingNumbers));
        }
        else
        {
            Console.WriteLine("В массиве встретились все числа от 0 до 20!");
        }
        
        // Дополнительная информация: минимальное и максимальное число в массиве
        int min = numbers[0];
        int max = numbers[0];
        for (int i = 1; i < size; i++)
        {
            if (numbers[i] < min) min = numbers[i];
            if (numbers[i] > max) max = numbers[i];
        }
        
        Console.WriteLine($"\nДополнительная информация:");
        Console.WriteLine($"Минимальное число в массиве: {min}");
        Console.WriteLine($"Максимальное число в массиве: {max}");
    }
}