Заполнение jagged (ступенчатого) массива из файла? - C#
Формулировка задачи:
Консоль. Нужно написать заполнение ступенчатого массива из файла (т.е. прочитать и записать в ступенчатый)
HELP Файл в директории - test3.txt:2 4 6 8
9 10
12
3 3 1 5 0
Кусок программы с переменными и нек-рыми др. действиями со ступенчатым, к-рые работают:
int[]
int[][] jaggedArr = null;
int m, n, inputChoiceLength;
int dN, qN; // для запоминания кол-ва подмассивов в jaggedArr
//public int q;
public int m2;
//int inputChoice = 0;
bool exit = true;
void inputJag() // Ввод ступенчатого
{
Console.WriteLine("Введите кол-во элементов ступенчатого массива: "); // кол-во массивов в массиве
int q = Convert.ToInt32(Console.ReadLine()); // q - кол-во массивов в jaggedArr
jaggedArr = new int[q][]; // объявление ступенчатого массива
for (int i = 0; i<q; i++)
{
Console.WriteLine("Введите кол-во эл-тов в строке: "); //(в каждом новом массиве)
int n = Convert.ToInt32(Console.ReadLine()); // измерение (кол-во эл-тов) очередного подмассива
int k=1;
jaggedArr[i] = new int[n]; // объявление очередного подмассива
for (int j=0; j<n; j++)
{
Console.WriteLine("Vvedite"+k+" element stroki");
jaggedArr[i][j]=int.Parse(Console.ReadLine());
k++;
}
qN = q;
Console.WriteLine();
}
for (int i = 0; i < q; i++)
{
Console.WriteLine();
for (int j = 0; j < jaggedArr[i].Length; j++)
{
Console.Write(jaggedArr[i][j] + " ");
}
}
Console.WriteLine();
}
void outJag() // Вывод ступенчатого массива
{
for (int i = 0; i < jaggedArr.Length; i++)
{
for (int j = 0; j < jaggedArr[i].GetLength(0); j++)
{
Console.Write(jaggedArr[i][j] + " ");
}
Console.Write('\n');
}
Console.ReadKey();
}
void jagMaxMin() // Max, Min ступенчатого
{
int i, j, k;
int jagMax = jaggedArr[0][0];
int jagMin = jaggedArr[0][0];
k = 0;
int jj = 0;
for (i = 0; i < qN; i++)
{
for (j = 0; j < jaggedArr[i].Length; j++)
{
if (jaggedArr[i][j] > jagMax)
{
jagMax = jaggedArr[i][j];
k = i;
jj = j;
}
}
}
Console.WriteLine("Max: jaggedArr[{0},{1}]={2}", k + 1, jj + 1, jagMax);
for (i = 0; i < qN; i++)
{
for (j = 0; j < jaggedArr[i].Length; j++)
{
if (jaggedArr[i][j] < jagMin)
{
jagMin = jaggedArr[i][j];
k = i;
jj = j;
}
}
}
Console.WriteLine("Min: jaggedArr[{0},{1}]={2}", k+1, jj+1,jagMin);
}
void menu()
{
while (exit)
{
Console.SetCursorPosition(1, 1);
Console.BackgroundColor = ConsoleColor.DarkMagenta;
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Выберите опцию: \n --СТУПЕНЧАТЫЕ МАССИВЫ--- \n 18 - ввод с клав-ы \n 19 - заполнение из файла НЕТ?? \n 20 - вывод \n 21 – изменение эл-тов массива НЕТ?? \n 22 – max, min НЕТ??\n");
Console.ResetColor();
Console.Write("Опция>> ");
/*int inputChoice;
int.TryParse(Console.ReadLine(), out inputChoice);*/ // было
int inputChoice;
int.TryParse(Console.ReadLine(), out inputChoice);
//Console.WriteLine("inputChoice = " + inputChoice);
switch (inputChoice)
{
case 18: inputJag();
break;
case 19: readJag();
break;
case 20: outJag();
break;
case 21: changeJag(jaggedArr);
break;
case 22: jagMaxMin();
break;
case 0: exit = false;
break;
}
if (exit == true)
{
Console.WriteLine("Нажмите любую клавишу для продолжения...");
Console.ReadKey();
}
Console.Clear();
}
}
static void Main(string[] args)
{
//menu();
Program p = new Program();
p.menu();
}Решение задачи: «Заполнение jagged (ступенчатого) массива из файла?»
textual
Листинг программы
int[,] map = new int[fileLines.Length,fileLines[0].Split(' ').Length];