Ошибка в коде. Массивы - C#
Формулировка задачи:
Добрый день! Есть код. Моя задача - сделать меню, предусмотреть ошибки. Но выдает ошибку, не могу разобраться.
Ввести натуральное n, состоящее из записи цифрами 0,1,2 и 3. На выходе n должно быть таким, что вначале записи идут 0, затем 1,2 и 3.
int n;
Console.WriteLine("Введите длину числа:\n");
n = Convert.ToInt32(Console.ReadLine());
int ch;
int[] x = new int[n];
for (; ; )
{
try
{
Console.Write("\nВведите число:\n");
for (int i = 0; i < n; i++)
{
x[i] = Convert.ToInt32(Console.ReadLine());
}
}
catch (FormatException)
{
Console.WriteLine("Неверный формат записи");
}
Console.WriteLine("Исходный массив:\n");
for (int i = 0; i <= n - 1; ++i)
Console.Write(" " + x[i]);
for (int j = 0; j <= n - 1; j++)
{
bool exch = false;
for (int i = 0; i <= n - 2 - j; ++i)
if (x[i] > x[i + 1])
{
ch = x[i + 1];
x[i + 1] = x[i];
x[i] = ch;
exch = true;
}
if (exch == false) break;
}
Console.WriteLine();
Console.WriteLine("\nРезультирующий массив:\n");
for (int i = 0; i <= n - 1; ++i)
{
Console.Write(" " + x[i]);
}
Console.ReadKey();
break;
} class Program
{
static void Main(string[] args)
{
int ch, n = 0, b;
int[] x = new int[n];
do
{
Console.WriteLine("Нажмите 1 и Enter для ввода длину числа ");
Console.WriteLine("Нажмите 2 и Enter для ввода числа ");
Console.WriteLine("Нажмите 3 и Enter для просмотра исходного массива ");
Console.WriteLine("Нажмите 4 и Enter для получения нового массива");
Console.WriteLine("Нажмите 5 и Enter для выхода из программы ");
b = Convert.ToInt32(Console.ReadLine());
switch (b)
{
case 1:
Console.Write("\nВведите число:\n");
n = Convert.ToInt32(Console.ReadLine()); break;
case 2:
Console.Write("\nВведите число:\n");
for (int i = 0; i < n; i++)
{
x[i] = Convert.ToInt32(Console.ReadLine());
}
break;
case 3:
Console.WriteLine("Исходный массив:\n");
for (int i = 0; i <= n - 1; ++i)
Console.Write(" " + x[i]); break;
case 4:
for (int j = 0; j <= n - 1; j++)
{
bool exch = false;
for (int i = 0; i <= n - 2 - j; ++i)
if (x[i] > x[i + 1])
{
ch = x[i + 1];
x[i + 1] = x[i];
x[i] = ch;
exch = true;
}
if (exch == false) break;
} break;
case 5:
Console.WriteLine();
Console.WriteLine("\nРезультирующий массив:\n");
for (int i = 0; i <= n - 1; ++i)
{
Console.Write(" " + x[i]);
} break;
}
}
while (b < 5);
}
}Решение задачи: «Ошибка в коде. Массивы»
textual
Листинг программы
int ch, n = 0, b; int[] x = new int[n];