Tích ma trận với ma trận chuyển vị
Đề bài:
Cho ma trận A chỉ gồm các số nguyên dương cấp N*M. Hãy viết chương trình tính tích của A với ma trận chuyển vị của A.
Dữ liệu vào: dòng đầu tiên ghi hai số n và m; n dòng tiếp theo ghi các phần tử của ma trận
Dữ liệu ra: ma trận tích
INPUT
2 2
1 2
3 4
OUTPUT
5 11
11 25
Giải:
#include<iostream> using namespace std; int a[100][100]; int b[100][100]; int c[100][100]; int n,m; void input() { cin >> n >> m; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) cin >> a[i][j]; } void cvi() { for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { b[j][i] = a[i][j]; } } } void tich() { for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { for(int l = 0; l < m; l++) { c[i][j] += a[i][l] * b[l][j]; } } } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cout << c[i][j] << " "; } cout << endl; } } int main() { input(); cvi(); tich(); }
Nhận xét
Đăng nhận xét