avatar
Untitled

Guest 1K 25th Apr, 2019

#include <stdio.h>

void nhap(int MTA[][10], int MTB[][10], int m, int n1, int n2, int p);
void nhan(int MTA[][10], int MTB[][10], int MTCResult[][10], int m, int n1, int n2, int p);
void in(int MTC[][10], int m, int p);

int main()
{
	int MTA[10][10], MTB[10][10], MTC[10][10], m, n1, n2, p, i, j, k;

	printf("Nhap co cua ma tran A: ");
	scanf("%d %d", &m, &n1);

	printf("Nhap co cua ma tran B: ");
	scanf("%d %d", &n2, &p);


	while (n1 != n2)
	{
		printf("So hang MTB phai bang so cot MTA\n");
		printf("Nhap co cua ma tran A: ");
		scanf("%d%d", &m, &n1);
		printf("Nhap co cua ma tran B: ");
		scanf("%d%d", &n2, &p);
	}

	// Hàm nhập dữ liệu
        nhapxuatab(MTA, MTB, m, n1, n2, p);

        // Hàm nhân ma trận
        nhan(MTA, MTB, MTC, m, n1, n2, p);

        // Hàm in ma trận
        kq(MTA, MTB, MTC, m, n1, n2, p);

	return 0;
}

void nhapxuatab(int MTA[][10], int MTB[][10], int m, int n1, int n2, int p)
{
	int i, j;
	printf("\nNhap phan tu ma tran A:\n");
	for(i = 0; i < m; ++i)
	{
		for(j = 0; j < n1; ++j)
		{
			printf("Phan tu a%d%d: ", i + 1, j + 1);
			scanf("%d", &MTA[i][j]);
		}
	}

	printf("\nNhap phan tu ma tran B:\n");
	for(i = 0; i < n2; ++i)
	{
		for(j = 0; j < p; ++j)
		{
			printf("Phan tu b%d%d: ", i + 1, j + 1);
			scanf("%d", &MTB[i][j]);
		}
	}



}

void nhan(int MTA[][10], int MTB[][10], int MTC[][10], int m, int n1, int n2, int p)
{
	int i, j, k;

	// Tạo ma trận C
	for(i = 0; i < m; ++i)
	{
		for(j = 0; j < p; ++j)
		{
			MTC[i][j] = 0;
		}
	}

	// Nhân ma trận A và B
	for(i = 0; i < m; ++i)
	{
		for(j = 0; j < p; ++j)
		{
			for(k=0; k<n1; ++k)
			{
				MTC[i][j] += MTA[i][k] * MTB[k][j];
			}
		}
	}
}

void kq(int MTA[][10], int MTB[][10], int MTC[][10], int m, int n1, int n2, int p)
{
	int i, j;

	printf("\nMa tran A:\n");
	  for (i = 0; i < m; i++)
    {
        for (j = 0; j < n1; j++)
        {
            printf("%d\t", MTA[i][j]);
        }
        printf("\n");

    }

    printf("\nMa tran B:\n");
	  for (i = 0; i < n2; i++)
    {
        for (j = 0; j < p; j++)
        {
            printf("%d\t", MTB[i][j]);
        }
        printf("\n");

    }

	printf("\nMa tran C:\n");
	for(i = 0; i < m; ++i)
	{
		for(j = 0; j < p; ++j)
		{
			printf("%d  ", MTC[i][j]);
			if(j == p - 1)
				printf("\n\n");
		}
	}

}
Description

No description

To share this paste please copy this url and send to your friends
RAW Paste Data