Заполнение 2d-массива из файла - C#
Формулировка задачи:
Нужно написать метод заполнения двухмерного массива (матрицы) из файла, при том, что неизвестно его кол-во строк/столбцов
Пож-та, поправьте меня или предложите, как лучше!void readMtrx() { const int row=3, col=3; // НЕТ, нужно, чтобы заранее не была известна размерность string[] rX=null; string filePath; Console.Write("Путь файла: "); filePath = Console.ReadLine(); rX=File.ReadAllLines(filePath); arrMtrx=new int[row,col]; for (int i=0; i<row; i++) { string[] rX2=rX[i].Split(' '); for (int j=0; j<col; j++) { arrMtrx[i,j]=int.Parse(rX2[j]); } } Console.ReadLine(); }
1 0 2
3 6 12
4 8 9
Помимо ввода нужно будет совершать различные операции с матрицей, например:
//Ввод матрицы с клав-ы void inputMatrix(int[] args) { //Console.WriteLine("Введите размерность матрицы: "); Console.Write("Введите кол-во строк матрицы: "); m = Convert.ToInt32(Console.ReadLine()); //строки Console.Write("Введите кол-во столбцов матрицы: "); n = Convert.ToInt32(Console.ReadLine()); //столбцы Console.WriteLine(" З А П О Л Н Е Н И Е "); arrMtrx = new int[m, n]; for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) { Console.Write("arrMtrx[" + i + "," + j + "] = "); arrMtrx[i, j] = int.Parse(Console.ReadLine()); } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) Console.Write("{0:d} ", arrMtrx[i, j]); Console.WriteLine(); } Console.ReadLine(); } //Вывод матрицы void outMatrix(int[,] arrMtrx) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) Console.Write("{0:d} ", arrMtrx[i, j]); Console.WriteLine(); } Console.WriteLine(); } void dif() // Разность матриц { int dif = 0; Dif = new int[m, n]; Console.WriteLine("Разность двух матриц:"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { Dif[i,j] = arrMtrx[i, j] - arrMtrx[i, j]; //Console.Write("{0} ", dif); } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) Console.Write("{0:d} ", Dif[i, j]); Console.WriteLine(); } Console.WriteLine(); }
Как объявлены переменные в начале:
int[] intArray = null; int[,] arrMtrx = null; int[,] Sum = null, Dif = null; int[,] r2 = null; int m, n, inputChoiceLength; int inputChoice = 0; bool exit = true;
Решение задачи: «Заполнение 2d-массива из файла»
textual
Листинг программы
do { row++; values.Add (reader.ReadLine ().Split (' ')); } while (!reader.EndOfStream);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д