Program C untuk Mendarab Dua Matriks Menggunakan Susunan Pelbagai Dimensi

Dalam contoh ini, anda akan belajar memperbanyak dua matriks dan memaparkannya menggunakan fungsi yang ditentukan pengguna.

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

  • C Susunan
  • C Susunan Multidimensi

Program ini meminta pengguna memasukkan ukuran (baris dan lajur) dua matriks.

Untuk mengalikan dua matriks, bilangan lajur matriks pertama harus sama dengan bilangan baris matriks kedua .

Program di bawah meminta bilangan baris dan lajur dua matriks sehingga keadaan di atas dipenuhi.

Kemudian, pendaraban dua matriks dilakukan, dan hasilnya dipaparkan di skrin.

Untuk melaksanakannya, kami telah membuat tiga fungsi:

  • getMatrixElements() - untuk mengambil input elemen matriks dari pengguna.
  • multiplyMatrices() - untuk mengalikan dua matriks.
  • display() - untuk memaparkan matriks yang terhasil setelah pendaraban.

Darab Matriks dengan Menyerahkannya ke Fungsi

 #include // function to get matrix elements entered by the user void getMatrixElements(int matrix()(10), int row, int column) ( printf("Enter elements: "); for (int i = 0; i < row; ++i) ( for (int j = 0; j < column; ++j) ( printf("Enter a%d%d: ", i + 1, j + 1); scanf("%d", &matrix(i)(j)); ) ) ) // function to multiply two matrices void multiplyMatrices(int first()(10), int second()(10), int result()(10), int r1, int c1, int r2, int c2) ( // Initializing elements of matrix mult to 0. for (int i = 0; i < r1; ++i) ( for (int j = 0; j < c2; ++j) ( result(i)(j) = 0; ) ) // Multiplying first and second matrices and storing it in result for (int i = 0; i < r1; ++i) ( for (int j = 0; j < c2; ++j) ( for (int k = 0; k < c1; ++k) ( result(i)(j) += first(i)(k) * second(k)(j); ) ) ) ) // function to display the matrix void display(int result()(10), int row, int column) ( printf("Output Matrix:"); for (int i = 0; i < row; ++i) ( for (int j = 0; j < column; ++j) ( printf("%d ", result(i)(j)); if (j == column - 1) printf(""); ) ) ) int main() ( int first(10)(10), second(10)(10), result(10)(10), r1, c1, r2, c2; printf("Enter rows and column for the first matrix: "); scanf("%d %d", &r1, &c1); printf("Enter rows and column for the second matrix: "); scanf("%d %d", &r2, &c2); // Taking input until // 1st matrix columns is not equal to 2nd matrix row while (c1 != r2) ( printf("Error! Enter rows and columns again."); printf("Enter rows and columns for the first matrix: "); scanf("%d%d", &r1, &c1); printf("Enter rows and columns for the second matrix: "); scanf("%d%d", &r2, &c2); ) // get elements of the first matrix getMatrixElements(first, r1, c1); // get elements of the second matrix getMatrixElements(second, r2, c2); // multiply two matrices. multiplyMatrices(first, second, result, r1, c1, r2, c2); // display the result display(result, r1, c2); return 0; )

Pengeluaran

 Masukkan baris dan lajur untuk matriks pertama: 2 3 Masukkan baris dan lajur untuk matriks kedua: 3 2 Masukkan elemen: Masukkan a11: 2 Masukkan a12: -3 Masukkan a13: 4 Masukkan a21: 53 Masukkan a22: 3 Masukkan a23: 5 Masukkan elemen: Masukkan a11: 3 Masukkan a12: 3 Masukkan a21: 5 Masukkan a22: 0 Masukkan a31: -3 Masukkan a32: 4 Matrik Keluaran: -21 22 159 179

Artikel menarik...