2013-11-01 85 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 EED再次打印一個個對自己使用循環:

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"); 
} 
相關問題