[問題] 類別定義陣列 使用者輸入大小

看板C_and_CPP作者 (小瓜)時間16年前 (2010/01/05 00:06), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/2 (看更多)
各位好 我定義了一個類別如下 class Matrix { public: void multiply(int, int, int, int [][], int [][]); }; 後面兩個陣列應該要填入行列大小才是 如果行列大小必須要使用者輸入 該怎麼處理呢@@ 完整程式碼如下 還沒處理好所以bug爆炸多>"< 先謝過各位的幫忙<(_ _)> #include "stdafx.h" #include "iostream" #include "fstream" using namespace std; class Matrix { public: int plus(int a, int b); void multiply(int, int, int, int [][], int [][]); }; int _tmain(int argc, _TCHAR* argv[]) { int M, L, N; int A[11][11],B[11][11],C[11][11]={0}; Matrix matrix; cout<<"Please enters M,L,N: "<<endl; cin>>M>>L>>N; cout<<"Please enters matrix A(MxL)"<<endl; for(int i = 0; i < M; i++) { for(int j = 0; j < L; j++) { cin >> A[i][j]; } } cout<<"Please enters matrix B(LxN)"<<endl; for(int i = 0; i < L; i++) { for(int j = 0; j < N; j++) { cin >> B[i][j]; } } matrix.multiply(M, L, N, A, B); system("pause"); return 0; } void Matrix::multiply(int m, int l, int n, int A[][], int B[][]) { for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { for(int k = 0; k < l; k++) { C[i][j]+=A[i][k]*B[k][j]; } } } cout<<"MatrixC(C=AxB): "<<endl; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { cout << C[i][j] << " "; cout << endl; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.25.174

01/05 00:12, , 1F
其實你應該傳一個"Matrix"型態進去,
01/05 00:12, 1F

01/05 00:19, , 2F
ㄜ啊??
01/05 00:19, 2F

01/05 04:51, , 3F
使用者自行輸入矩陣大小,那就是動態矩陣吧!
01/05 04:51, 3F
文章代碼(AID): #1BGX89xE (C_and_CPP)
文章代碼(AID): #1BGX89xE (C_and_CPP)