Программирование на C#

Помогите с кодом (он работает не совсем корректно)!
Я не могу разобраться с проверкой условия (о том есть ли два отрицательных элемента)
Код:
using System;
class HelloWorld {
static void Main(string[] args) {
int n = 0;
do //Проверка на корректность n
{
Console.WriteLine ("Введите количество элементов массива");
n = Convert.ToInt32(Console.ReadLine());
}
while(n > 20 && n < 1);
Console.WriteLine ("Массив");
int[] a = new int[n]; //Создаём массив
Random rand = new Random();
for(int i = 0; i < n; i++) {
a[i] = rand.Next (-100,100); //Заполняем случайными числами диапозоном от -100 до 100
Console.Write (a[i] + " ");
}
Console.WriteLine ();
Array.Sort(a);
for(int i = 0; i < n; i++) {
Console.Write (a[i] + " "); //выводим массив
}
Console.WriteLine ();
bool inserted = true;
int m1 = int.MinValue;
int m2 = int.MinValue; //объявляем переменные для нахождения наибольших отрицательных чисел
int Sum = 0;
for (int i = 0; i < n; i++) {
if (a[i] < 0 && a[i] > m1) { //поиск первого наибольшего отрицательного числа
m2 = m1; //присваиваем m2 значение m1, т.к. оно было наибольшим до этого
m1 = a[i];
} else if (a[i] < 0 && a[i] > m2) { //поиск второго наибольшего отрицательного числа
m2 = a[i];
inserted = false;
}
}
if (inserted == false) {
Sum = m1 + m2; //сумма наибольших отрицательх чисел
Console.WriteLine ($"Сумма {Sum}");
}
else {
Console.WriteLine ("Нету "); //вывод сообщения о том, что нет двух отрицательных элементов
}
}
}
Условие while (n > 20 && n < 1) никогда не будет выполняться.
Проверка if (inserted == false) - плохой пример кода. Замени на if (!inserted).
Для поиска ошибок используй дебаггинг.