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

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Đếm số thuần nguyên tố trong một khoảng

Tìm số đẹp (lộc phát)