Получение матрицы из файла и присвоение ее массиву с максимальным размером - PullRequest
1 голос
/ 02 ноября 2010

Ладно, у меня есть массив a[maxsize] [maxsize], где maxsize=10 как мне заставить массив работать правильно, если взять массив из файла, который меньше максимального размера.

Пример матрицы:

1 2 3
4 5 6
7 8 9

Выходит:

1 2 3 4 5 6 7 8 9

Мой код: `int main () {const int maxsize = 10;double original_matrix [maxsize] [maxsize], transposed_matrix [maxsize] [maxsize];

ifstream fin;
ofstream fout;

fin.open ("input.txt");

if (fin.fail())
{
    cout << "Input file opening failed. \n";
    return 0;
}

for(i=0; i<maxsize; i++)
{
    for(j=0; j<maxsize; j++)
    {
        fin >> original_matrix [i][j];
    }
}

transpose(original_matrix[][maxsize], transposed_matrix[][maxsize],maxsize)


return 0;
}

Я хочу, чтобы массив присвоил его следующим образом

M [0] [0]=1 M [0] [1]=2 M [0] [2]=3
M [1] [0]=4 M [1] [1]=5 M [1] [2]=6
M [2] [0]=7 M [2] [1]=8 M [2] [2]=9

Не

M [0] [0]=1 M [0] [1]=1 M [0] [2]=1 M [0] [3]=1 M [0] [4]=1 M [0] [5]=1 M [0] [6]=1 M [0] [7]=1 M [0] [8]=1

..... Итак,

Текстовый файл выглядит так:

2
1 0
0 1
3
8 9 1
3 5 2
-2 3 -1
0

1 Ответ

2 голосов
/ 02 ноября 2010

Если вы хотите, чтобы матрица выходила в форме матрицы, почему бы вам не сделать это:

    for(i=0; i<maxsize; i++)
{
    for(j=0; j<maxsize; j++)
    {
        fin >> original_matrix [i][j];
    }
    cout << "\n"
}

Таким образом, она получается в виде рамки вместо одной строки.Я думаю, что вам также придется поиграться с maxsize, потому что вы хотите, чтобы это была матрица без пустот, поэтому вы должны проверить, сколько векторов составляют матрицу, и использовать это как условие (вместо maxsize)

edit - входной файл psuedo code

Таким образом, первая строка - это одно число, которое указывает использование числа строк или столбцов матрицы.Эта программа будет предполагать, что это квадратная матрица.значение условия, которое вы хотите, это первая строка (т.е. 2,3,0).Убедитесь, что значение больше 0 и меньше 10. Проанализируйте строку ввода для каждого значения, вставьте его в матрицу.Установите значение условия, и поэтому у вас будет идеальная квадратная матрица.

  1. Открыть файл
  2. Считать строку, это длина матрицы?* если это так, установите в условие *, если нет, это значение в матрице
  3. Проверьте условие, чтобы убедиться, что 0
  4. Print.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...