Заполнение 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д