C语言:多功能计算器 (矩阵相乘)

好家伙,实现矩阵相乘功能

 

代码如下:

void fifth()//矩阵的相乘//
{
    int a[100][100],b[100][100];
    int d,e,f,h,j,k,t;
    double sum;
    double     c[100][100];
    printf("请输入第一个矩阵行数和列数;\n");
    scanf("%d%d",&d,&e);
    printf("请输入矩阵中的数字:\n");
    for(f=0;f<d;f++)
    {
        for(h=0;h<e;h++)
        {
            printf("请输入第%d行第%d列的数字",f,h);
            scanf("%d",&a[f][h]);
        }
    }
    printf("请输入第二个矩阵行数和列数.\n");
    scanf("%d%d",&j,&k);
    printf("请输入矩阵中的数字:\n");
    for(f=0;f<j;f++)
    {
        for(h=0;h<k;h++)
        {
            printf("请输入第%d行第%d列的数字",f,h);
            scanf("%d",&b[f][h]);
        }
    }
    if(e==j)//矩阵相乘只有在左边矩阵的列数等于右边矩阵的行数时才能相乘
    {
        for(f=0;f<d;f++)
        {
        
            for(h=0;h<k;h++)
            {
                sum=0;
                for(t=0;t<e;t++)
                {
                    sum+=a[f][t]*b[t][h];
                }
                c[f][h]=sum;
            }
        printf("\n");
        }
        for(f=0;f<d;f++)
        {

            for(h=0;h<k;h++)
            {
                printf("%6.2f",c[f][h]);
            }
        printf("\n");
        }
    }
    else
    {
        printf("该输入的矩阵无法相乘,因为输入左边的矩阵的列数不等于右边矩阵的行数。\n");
    }


}

 

2. (fifth)函数 矩阵的相乘

核心算法部分:

(按照公式计算出最终矩阵的值,其中d,e是第一个矩阵的行数和列数,j,k是第二个矩阵的行数和列数)

         for(f=0;f<d;f++)

                   {

                  

                            for(h=0;h<k;h++)

                            {

                                     sum=0;

                                     for(t=0;t<e;t++)

                                     {

                                               sum+=a[f][t]*b[t][h];

                                     }

                                     c[f][h]=sum;

                            }

 

算法分析:

此处使用三个for循环,

第一层for循环控制第一个矩阵的行数(f),

第二层for循环控制控制第一个矩阵的列数和第二个矩阵的行数,(t)

第三个for循环控制第二个矩阵的列数,(h)

 

以(t++)为点

 

测试样例:

         输入:2 3\n 1\n 2\n 3\n 4\n 5\n 6\n

                    2 3\n 1\n 2\n 3\n 4\n 5\n 6\n

 

         输出:7.00 10.00

                 19.00 28.00

 

测试图片:

 

 

 

 

 

 

看上去可行

posted @ 2022-03-25 23:58  养肥胖虎  阅读(488)  评论(0编辑  收藏  举报