[C++ ] 第12題的兩種方法

看板NTUBIME104HW作者 (大佐)時間14年前 (2011/12/14 11:51), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
方法一:雙重指標(動態宣告) #include "stdafx.h" #include <iostream> #include <iomanip> #define W 11 using namespace std; void Matrix(int** _A, int** _B, int** _C, int _M, int _L, int _N){ long long int sum, i, j, k; for(i=0; i<_M; i++){ for(j=0; j<_N; j++){ sum = 0; for(k=0; k<_L; k++) sum += *(*(_A+i)+k) * *(*(_B+k)+j); *(*(_C+i)+j) = sum; cout << sum << ' '; } cout << endl; } } int main(){ int **A = new int*[W], **B = new int*[W], **C = new int*[W]; for(int i=0; i<W; i++){ *(A+i) = new int[W]; *(B+i) = new int[W]; *(C+i) = new int[W]; } int M, N, L; while(1){ cin >> M >> L >> N; if(cin.eof()) break; else{ for(int i=0; i<M; i++) for(int j=0; j<L; j++) cin >> A[i][j]; for(int i=0; i<L; i++) for(int j=0; j<N; j++) cin >> B[i][j]; cout << endl; Matrix(A, B, C, M, L, N); /*for(int i=0; i<M; i++){ for(int j=0; j<N; j++) cout << setw(4) <<C[i][j]; cout << endl; }*/ } } delete A; delete B; delete C; return 0; } ========================================================================== 方法二:二維陣列(靜態宣告) #include "stdafx.h" #include <iostream> #include <iomanip> #define W 120 using namespace std; void Matrix(long long int *_A, long long int *_B, long long int *_C, long long int _M, long long int _L, long long int _N){ long long int sum, i, j, k; for(i=0; i<_M; i++){ for(j=0; j<_N; j++){ sum = 0; for(k=0; k<_L; k++) sum += *(_A+i*W+k) * *(_B+k*W+j); *(_C+i*W+j) = sum; } } } long long int A[W][W], B[W][W], C[W][W]; int main(){ long long int *pA, *pB, *pC; long long int M, N, L; while(1){ cin >> M >> L >> N; if(cin.eof()) break; else{ for(int i=0; i<M; i++) for(int j=0; j<L; j++) cin >> A[i][j]; for(int i=0; i<L; i++) for(int j=0; j<N; j++) cin >> B[i][j]; cout << endl; pA = &A[0][0], pB = &B[0][0], pC = &C[0][0]; Matrix(pA, pB, pC, M, L, N); for(int i=0; i<M; i++){ for(int j=0; j<N; j++) cout << setw(4) <<C[i][j]; cout << endl; } } } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.200

12/14 13:05, , 1F
神顯靈了
12/14 13:05, 1F

12/14 17:01, , 2F
delete方式不對
12/14 17:01, 2F
文章代碼(AID): #1Ew1r5qC (NTUBIME104HW)