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ố

Số đẹp tăng giảm

Tìm số Strong trong khoảng cho trước