2013-11-02 279 views
1

我必須通過C從文件中提取矩陣並計算它的行​​列式。要做到這一點,任何矩陣高達3x3我相信我會需要知道矩陣的尺寸,但我很新的編程,所以我不知道我有什麼選擇。C中矩陣的尺寸

如果我有一個帶有未指定矩陣的.dat文件,該怎麼做才能找到矩陣的尺寸?

正如我不知道我的選擇是

+0

這可能有幫助嗎? http://stackoverflow.com/questions/37538/how-do-i-determine-the-size-of-my-array-in-c – codedude

+0

如果你想計算矩陣的行列式,矩陣總是形式'nxn'。在這種情況下,您可以逐行閱讀內容,直到「EOF」。然後你知道等於列數的行數。 – PhillipD

+0

我想到了,但不幸的是我不知道如何閱讀linewise內容? – Carterini

回答

0

應對您發表評論:

您可以通過計算\n數來決定文件中的行數。

#include <stdio.h> 

int main(void) { 

    int lines = 0; 

    FILE *fh; 

    fh = fopen("matrix.dat", "r"); 

    int ch; 

    while (EOF != (ch=fgetc(fh))) 
    if (ch=='\n') 
     ++lines; 

    fclose(fh); 

    printf("%d\n", lines); 

    return 0; 

} 
+0

啊好的,我不知道fgetc()對此很新穎。我非常感謝你的幫助,我覺得我正在慢慢獲得它! – Carterini

+0

快速問題,什麼是ch?它只是一個你使用的臨時整數嗎? – Carterini

+0

@Carterini'ch'是一個臨時變量。 'fgetc(file_handle)'從文件中讀取單個字符,即每次我們調用'fgetc()'我們都覆蓋'ch',即它確實是一個臨時的。有關'getch()'的更多信息,請參閱http://www.cplusplus.com/reference/cstdio/getchar/ – PhillipD

1

以及你可以做什麼擺陣,並因爲它是方陣 行數=數在正確的方向一推將是有益的 找到元素個數的平方根

接入是通過M [i * d + j] d是矩陣的維數r = c = d;

提示使用動態數組指針即

+1

http://www.cs.bu.edu/teaching/c/file-io/intro/試試這個來讀取文件希望它有幫助 –