Как сделать заполнение массива за один раз? - C#
Формулировка задачи:
Как сделать чтобы заполнения массива была за один раз,
например когда будет запрос ReadLine'а
через пробел чтобы можно было заполнить массив
сейчас у меня в этом коде в зависимости от размера массива выводится ReadLine
то есть если размер массива равно 2 ( 0 и 1)
то приходиться дважды ввести значения
А хочется чтобы за раз заполнить массив когда будет запрос ReadLine()
вот в этом месте "mas[idx] = int.Parse(Console.ReadLine());"
int x = int.Parse(Console.ReadLine());
int[] mas = new int[x];
Console.WriteLine("Заполни массив");
int idx = 0;
loop:
mas[idx] = int.Parse(Console.ReadLine());
//Console.Write(mas[idx] + "\n");
idx++;
if (idx < x)
goto loop;
int idx2 = 0;
Console.WriteLine("\nВывод массива");
loop2:
//mas[idx] = int.Parse(Console.ReadLine());
Console.Write(mas[idx2] + "\n");
idx2++;
if (idx2 < x)
goto loop2;
Console.ReadKey();Решение задачи: «Как сделать заполнение массива за один раз?»
textual
Листинг программы
static void Main(string[] args) {
inputLoop:
Console.WriteLine("Заполни массив: ");
string strArray = Console.ReadLine();
if (strArray.Length == 0) {
Console.Clear();
goto inputLoop;
}
int size = strArray.Length - strArray.Replace(" ", "").Length + 1;
int[] numArray = new int[size];
int i = 0;
int pos = 0;
fillArrayLoop:
pos = strArray.IndexOf(" ");
if (pos < 0) {
pos = strArray.Length;
}
numArray[i] = int.Parse(strArray.Substring(0, pos));
i++;
if (i < size) {
strArray = strArray.Substring(pos + 1);
goto fillArrayLoop;
}
i = 0;
outputLoop:
Console.Write(numArray[i].ToString() + " ");
i++;
if (i < size)
goto outputLoop;
Console.ReadKey();
}