Menu Close

C语言程序计算出两个矩阵相乘

#include <stdio.h>

int main()
    {
        int a[10][10], b[10][10], result[10][10], r1, c1, r2, c2, i, j, k;

        printf("Enter rows and column for first matrix: ");
        scanf("%d %d", &r1, &c1);

        printf("Enter rows and column for second matrix: ");
        scanf("%d %d",&r2, &c2);

         // Column of first matrix should be equal to column of second matrix and
         while (c1 != r2)
        {
        printf("Error! column of first matrix not equal to row of second.\n\n");
        printf("Enter rows and column for first matrix: ");
        scanf("%d %d", &r1, &c1);
        printf("Enter rows and column for second matrix: ");
        scanf("%d %d",&r2, &c2);
        }

        // Storing elements of first matrix.
        printf("\nEnter elements of matrix 1:\n");
        for(i=0; i<r1; ++i)
        for(j=0; j<c1; ++j)
        {
            printf("Enter elements a%d%d: ",i+1, j+1);
            scanf("%d", &a[i][j]);
        }

        // Storing elements of second matrix.
        printf("\nEnter elements of matrix 2:\n");
        for(i=0; i<r2; ++i)
        for(j=0; j<c2; ++j)
        {
            printf("Enter elements b%d%d: ",i+1, j+1);
            scanf("%d",&b[i][j]);
        }

        // Initializing all elements of result matrix to 0
        for(i=0; i<r1; ++i)
        for(j=0; j<c2; ++j)
        {
            result[i][j] = 0;
        }

             // Multiplying matrices a and b and
            // storing result in result matrix
            for(i=0; i<r1; ++i)
            for(j=0; j<c2; ++j)
            for(k=0; k<c1; ++k)
            {
                result[i][j]+=a[i][k]*b[k][j];
            }

        // Displaying the result
        printf("\nOutput Matrix:\n");
        for(i=0; i<r1; ++i)
        for(j=0; j<c2; ++j)
        {
            printf("%d  ", result[i][j]);
                                if(j == c2-1)
            printf("\n\n");
        }
        return 0;
}

结果

READ  C语程序练习:发现一个数组的最大值
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in 数组和指针

Related Posts