Nhân hai ma trận trong C



Bài tập C: Nhân hai ma trận

Dựa vào phần lý thuyết đã học trong môn Đại số, bạn hãy viết chương trình C để nhân hai ma trận đã cho. Đây là bài tập C khá phức tạp và đỏi hỏi bạn cần biết vận dụng thuần thục cách khởi tạo và cách truy cập các phần tử của mảng hai chiều trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập nhân hai ma trận trong C:

#includeint main() {
   int a[10][10], b[10][10], c[10][10], i, j, k;
   int sum = 0;   printf("\nNhap ma tran dau tien:\n");
   for (i = 0; i < 3; i++) {
      for (j = 0; j < 3; j++) {
         scanf("%d", &a[i][j]);
      }
   }   printf("\nNhap ma tran thu hai:\n");
   for (i = 0; i < 3; i++) {
      for (j = 0; j < 3; j++) {
         scanf("%d", &b[i][j]);
      }
   }   printf("Ma tran dau tien: \n");
   for (i = 0; i < 3; i++) {
      for (j = 0; j < 3; j++) {
         printf(" %d ", a[i][j]);
      }
      printf("\n");
   }   printf("Ma tran thu hai: \n");
   for (i = 0; i < 3; i++) {
      for (j = 0; j < 3; j++) {
         printf(" %d ", b[i][j]);
      }
      printf("\n");
   }   //phep nhan ma tran
   for (i = 0; i <= 2; i++) {
      for (j = 0; j <= 2; j++) {
         sum = 0;
         for (k = 0; k <= 2; k++) {
            sum = sum + a[i][k] * b[k][j];
         }
         c[i][j] = sum;
      }
   }   printf("\nTich cua hai ma tran la: \n");
   for (i = 0; i < 3; i++) {
      for (j = 0; j < 3; j++) {
         printf(" %d ", c[i][j]);
      }
      printf("\n");
   }   return (0);
}

Biên dịch chương trình C trên sẽ cho kết quả:

Nhân hai ma trận trong C
bai-tap-mang-hai-chieu-trong-c.jsp