我有學校作業,其中包括創建一個程序,該程序可以與Matrix
進行數學運算。在這個程序中,我必須使用typedef
創建Matrix
。使用數組插入所有已聲明的對象
This typedef
should hold 4 x 4
Matrix
with double
type。
因此,對於這個位置是我的實現:
typedef struct {
char * name;
double * data;
int elements;
} mat;
在主,我需要定義幾個mat
對象是這樣的:
mat MAT_A, MAT_B, MAT_C, MAT_D, MAT_E, MAT_F;
而這個用戶應該輸入的輸入,例如:add_mat mat_a,mat_b,mat_c
, 此操作會將2 Matrix
mat_a
和mat_b
添加到mat_c
。
所以之後,該用戶輸入與Comma\Tab
拆呢,我想寫簡單的函數,得到了char
這是必要的mat
並返回相關mat
:
例如:
mat getmatrix(char name, mat *mats)
{
int i;
for (i = 0; i < 6; i++)
{
if (strcmp(mats[i].name, "MAT_A") == 0)
{
return mats[i];
}
}
.....
}
對於這一點,我插入我所有的墊物進入array
:
mat mats[] = { MAT_A, MAT_B, MAT_C, MAT_D, MAT_E, MAT_F };
但我得到這個錯誤我所有mat
對象:
未初始化的局部變量「MAT_A」使用
關於如何解決它也許找到另一種方式來讀取輸入的任何建議?
任何建議如何解決它? =>代碼中沒有'MAT_A' => [mcve]。 – Stargateur
尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。 – Stargateur
如果矩陣大小是4x4,則使元素成爲指針沒有意義。只要在結構中加入「double data [4] [4];'就可以簡化很多事情。 – unwind