По сути, входной файл должен выглядеть следующим образом:
4
1 2 3 4
2 1 4 3
4 3 2 1
3 4 1 2
Где первая строка - размер квадратной матрицы. Однако я не могу правильно загрузить входные данные непосредственно в n, а затем в матрицу. Я избежал такой проблемы, создав массив «загрузчик».
int n, loader[100], p=0;
while(feof(data) == 0) {
if(p == 0) {
fscanf(data, "%d", &n); //taking n
p++;
} else {
fscanf(data, "%d", &loader[p]); //taking matrix values for p>0
p++;
}
}
//loading the matrix
int mat[n][n], o = 1; //o is set to 1, as the loader
//has been loaded from position 1.
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++){
printf("%d\n", loader[o]);
mat[i][j] = loader[o];
o++;
}
}
Однако я думаю, что это просто не нужно, и может быть более быстрый способ непосредственного определения размера матрицы и ее значений. Когда я программировал таким образом, я получил приветственную ошибку Segmentation Fault.