請問如何用 c++ 寫一個矩陣 要交作業了 !!拜託
沒有相乘沒關係 有就更好囉^^
2006-10-19 11:55:52 · 2 個解答 · 發問者 小鍾 2 in 電腦與網際網路 ➔ 程式設計
/* 程式功能: 矩陣相乘 */
/* 輸入:3×2矩陣A, 2×2矩陣B */
/* 輸出:3×2矩陣 , i = 1到3, j = 1 到 2 */
#include
#define m 3
#define n 2
#define p 2
int main() {
int A[m+1][n+1], B[n+1][p+1], C[m+1][p+1];
int i, j, k;
printf("請依序輸入二維陣列A(3x2)的元素內容: ");
for (i =1 ; i<= 3; i++) {
for(j=1;j<=2;j++) {
scanf("%d",&A[i][j]);
}
}/*end for*/
printf("請依序輸入二維陣列B(2x2)的元素內容: ");
for (i=1;i<=2;i++) {
for(j=1;j<=2;j++) {
scanf("%d",&B[i][j]);
}
}/*end for*/
for (i=1; i<=m; i++) {
for (j=1; j<=p; j++) {
C[i][j]=0; /*初始化陣列C */
for(k = 1; k <= n; k++) {
C[i][j] = C[i][j] +A[i][k] * B[k][j]; /*陣列A乘上陣列B,存入陣列C */
}
printf("%d ", C[i][j]); /*輸出陣列C */
}
printf("\n");
}
system("pause");
return 0;
}
dev-c++ 可以編譯 .... 因為我猜你們應該沒要求要自己輸入矩陣大小吧
如果需要要用C 用malloc() ,, C++ 用new 配置動態記憶體才可以辦到
#define m 3
#define n 2
#define p 2
改變大小改這就可以 , 注意一下矩陣相乘的規則即可
2006-10-19 19:20:54 · answer #1 · answered by ? 1 · 0⤊ 0⤋
我也不知道有沒什麼很容易的方法寫
不過最簡單的方法就是看你要幾乘幾的矩陣
然後你宣告一個二元陣列
一個一個對照
看是要做加法、減法或成法都可以
呵呵 我資料結構沒學好忘了矩陣有什麼方式可以表示了
2006-10-19 12:48:03 · answer #2 · answered by feng 2 · 0⤊ 0⤋