2013-11-01 1 views
0

Хорошо, пожалуйста, пожалуйста, со мной, поскольку я только кодировал пару недель, и я очень к этому знаком, поэтому мои ошибки, вероятно, будут выглядеть тривиальный.Чтение матрицы 3x3 из файла, а затем ее отображение в C

Мне просто нужна помощь, так как у меня нет подсказки, куда идти дальше для моего кода, я просто хочу напечатать матрицу, но я не знаю, как это сделать.

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 

int main(int argc, char* argv[]) 
{ 
FILE  *input; 
int  i, j; 
float  fullmatrix[3][3]; 
const char inp_fn[]="matrix.dat"; 

/*Open File*/ 
input = fopen(inp_fn, "r"); 

if((input != (FILE*) NULL)) 
{ 
    for(i=0; i<3; i++) 
    { 
     for(j=0; j<3; j++) 
     { 
      fullmatrix[i][j] = input; 
     } 
     fscanf(input, "%f"); 

    } 
    fclose(input); 
    printf("%f %f %f\n %f %f %f\n %f %f %f\n", &matrix[i][j]); 
} 
else 
    printf("Could not open file!\n"); 

return(0); 
} 

Как я сказал, извините, если это глупый вопрос, я просто не знаю, куда идти дальше

ответ

1
for(i=0; i<3; i++) 
{ 
    for(j=0; j<3; j++) 
    { 
     fullmatrix[i][j] = input; 
    } 
    fscanf(input, "%f"); 

} 

должно быть:

for(i=0; i<3; i++) { 
    for(j=0; j<3; j++) { 
     fscanf(input, "%f", &fullmatrix[i][j]); 
    } 
} 

и эта линия не будет как вы думаете:

printf("%f %f %f\n %f %f %f\n %f %f %f\n", &matrix[i][j]); 

Вы n ПЕД печатать его по одному на своей собственной, используя петлю снова:

for(i=0; i<3; i++) { 
    for(j=0; j<3; j++) { 
     printf("%f ", fullmatrix[i][j]); 
    } 
    printf("\n"); 
} 
+0

Я плохо в C, но я думаю, что результат тоже ошибочный. –

+0

Вот что я имел в виду! :) –

+0

@ user1561072: Смотрите мое редактирование. Вы должны потратить больше времени на чтение хорошей книги;) – LihO

0

Для чтения файла и положить его в матрицу и печати в один идти:

for(i=0; i<3; i++) { 
    for(j=0; j<3; j++) { 
     fscanf(input, "%f", &fullmatrix[i][j]); // If you just want to print the matrix separately .. remove this line 

     printf("%f ",matrix[i][j]); 
    } 
    printf("\n"); 
}