Эх, вспомнил я первый курс универа...
Я бы, наверное, сделал как-то так, учитывая, что это всё же учебное задание, если есть вопросы, велкам, отвечу.
class Program
{
private const int MinArrayLength = 2;
private const int MaxArrayLength = 20;
private static int ReadInteger(string prompt)
{
while (true)
{
Console.Write(prompt);
string input = Console.ReadLine();
if (!int.TryParse(input, out int number))
{
Console.WriteLine($"Значение {input} не является числом");
continue;
}
return number;
}
}
private static int ReadArrayLength()
{
while (true)
{
var number = ReadInteger($"Введите размер массива от {MinArrayLength} до {MaxArrayLength}: ");
if (number > MaxArrayLength || number < MinArrayLength)
{
Console.WriteLine($"Число {number} лежит вне границ интервала [{MinArrayLength}..{MaxArrayLength}]");
continue;
}
return number;
}
}
private static int[] ReadArray(int length)
{
while (true)
{
Console.Write($"Введите до {length} целых чисел через пробел: ");
string input = Console.ReadLine();
string[] entries = input.Split(' ', StringSplitOptions.RemoveEmptyEntries);
if (entries.Length > length)
{
Console.WriteLine($"Вы ввели более {length} чисел");
continue;
}
if (!TryParseIntegerArray(length, entries, out var array))
continue;
return array;
}
}
private static bool TryParseIntegerArray(int length, string[] strings, out int[] array)
{
array = new int[length];
for (int i = 0; i < strings.Length; ++i)
{
if (!int.TryParse(strings[i], out int number))
{
Console.WriteLine($"Строка {strings[i]} (позиция {i}) не является числом");
return false;
}
array[i] = number;
}
if (length > strings.Length)
{
Array.Clear(array, strings.Length, length - strings.Length);
}
return true;
}
private static int CountNumberOccurs(int[] array, int targetNumber)
{
int occursCount = 0;
for (int i = 0; i < array.Length; ++i)
{
if (array[i] == targetNumber)
occursCount++;
}
return occursCount;
}
static void Main(string[] args)
{
int arrayLength = ReadArrayLength();
int[] array = ReadArray(arrayLength);
int targetNumber = ReadInteger("Введите целое число для поиска повторений: ");
int occursCount = CountNumberOccurs(array, targetNumber);
Console.WriteLine($"Количество вхождений числа {targetNumber} в массив: {occursCount}.");
Console.WriteLine("Нажмите <ENTER> для выхода.");
Console.ReadLine();
}
}