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}");
}
}