Заполнение 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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы