Program C ++ untuk Mendarab Dua Matriks Menggunakan Susunan Pelbagai Dimensi

Program ini mengambil dua matriks pesanan r1 * c1 dan r2 * c2 masing-masing. Kemudian, program mengalikan dua matriks ini (jika boleh) dan memaparkannya di skrin.

Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan C ++ berikut:

  • Susunan Multidimensi C ++
  • Susunan C ++

Untuk mengalikan dua matriks, bilangan lajur matriks pertama harus sama dengan bilangan baris ke matriks kedua. Program ini memaparkan ralat sehingga bilangan lajur matriks pertama sama dengan bilangan baris matriks kedua.

Contoh: Darabkan dua matriks tanpa menggunakan fungsi

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Pengeluaran

Masukkan baris dan lajur untuk matriks pertama: 3 2 Masukkan baris dan lajur untuk matriks kedua: 3 2 Ralat! lajur matriks pertama tidak sama dengan baris kedua. Masukkan baris dan lajur untuk matriks pertama: 2 3 Masukkan baris dan lajur untuk matriks kedua: 3 2 Masukkan elemen matriks 1: Masukkan elemen a11: 3 Masukkan elemen a12: -2 Masukkan elemen a13: 5 Masukkan elemen a21: 3 Masukkan elemen a22 : 0 Masukkan elemen a23: 4 Masukkan elemen matriks 2: Masukkan elemen b11: 2 Masukkan elemen b12: 3 Masukkan elemen b21: -9 Masukkan elemen b22: 0 Masukkan elemen b31: 0 Masukkan elemen b32: 4 Matrik keluaran: 24 29 6 25

Pada program ini, pengguna diminta memasukkan ukuran dua matriks pada mulanya.

Lajur matriks pertama harus sama dengan baris matriks kedua untuk pendaraban. Sekiranya keadaan ini tidak dipenuhi, saiz matriks sekali lagi diminta menggunakan while loop.

Kemudian, pengguna diminta memasukkan dua matriks dan akhirnya output dua matriks dikira dan dipaparkan.

Oleh kerana, program ini panjang dan sukar untuk debug, lebih baik menyelesaikan program ini dengan meneruskannya ke fungsi.

Lawati halaman ini untuk mengetahui tentang mengalikan matriks dengan meneruskan susunan ke fungsi.

Artikel menarik...