برنامه ضرب ماتریس یکی از تمارین مورد علاقه برنامه نویسان تازه کار هست. از این رو اگر مطمعناً در طول دوران تحصیل حداقل یک بار با مسئله ضرب ماتریس ها برخورد کردین.
برای ضرب دو ماتریس حاصل ضرب هر خونه سطر اول ماتریس اول رو با حاصل ضرب هر ستون از ماتریس دوم جمع کنیم.
توضیح قشنگ تر : آموزش ضرب ماتریس
برای مثال :
با توجه به تعریف های بالا باید در نظر داشته باشیم که برای ضرب ماتریس باید تعداد ستون ماتریس اول با تعداد سطر های ماتریس دوم برابر باشه.
پس می تونیم اصلا تعداد سطر های ماتریس دوم رو از کاربر نگیریم.
#include using namespace std; int main(int argc, const char *argv[]) { int n, m, p, a[100][100], b[100][100]; int mul[100][100]; // a[n][m] // b[m][p] // mul[n][p] cout << "---- A ----- \n"; cout << "row: "; cin >> n; cout << "\ncol:"; cin >> m; cout << "\nelements: \n"; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) cin >> a[i][j]; cout << "\n---- B ----- \n"; cout << "col:"; cin >> p; cout << "\nelements: \n"; for (int i = 0; i < m; i++) for (int j = 0; j < p; j++) cin >> b[i][j]; for (int i = 0; i < n; i++) { for (int j = 0; j < p; j++) { mul[i][j] = 0; for (int k = 0; k < m; k++) mul[i][j] += a[i][k] * b[k][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < p; j++) { cout << mul[i][j] << " "; } cout << "\n"; } return 0; }