在c中使用while循环的矩阵乘法

mdfafbf1  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(138)

下面我用for循环给出了c语言中矩阵的乘法,但是可以帮助我做一个更简化的版本吗?或者可以帮助我用while循环来做吗
我想要一个简化版本
我想要while循环中代码
:)只是学习

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a[10][10], b[10][10], mul[10][10], r, c, i, j, k;
    system("cls");
    printf("enter the number of row=");
    scanf("%d", &r);
    printf("enter the number of column=");
    scanf("%d", &c);
    printf("enter the first matrix element=\n");
    for (i = 0; i < r; i++)
    {
        for (j = 0; j < c; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    printf("enter the second matrix element=\n");
    for (i = 0; i < r; i++)
    {
        for (j = 0; j < c; j++)
        {
            scanf("%d", &b[i][j]);
        }
    }

    printf("multiply of the matrix=\n");
    for (i = 0; i < r; i++)
    {
        for (j = 0; j < c; j++)
        {
            mul[i][j] = 0;
            for (k = 0; k < c; k++)
            {
                mul[i][j] += a[i][k] * b[k][j];
            }
        }
    }
    //for printing result
    for (i = 0; i < r; i++)
    {
        for (j = 0; j < c; j++)
        {
            printf("%d\t", mul[i][j]);
        }
        printf("\n");
    }
    return 0;
}
ccgok5k5

ccgok5k51#

它不会使代码更简单,只会使代码更难读。
循环示例之一:

printf("multiply of the matrix=\n");
    i = 0;
    while (i < r)
    {
        j = 0;
        while(j < c)
        {
            mul[i][j] = 0;
            k = 0;
            while(k < c)
            {
                mul[i][j] += a[i][k] * b[k][j];
                k++;
            }
            j++;
        }
        i++;
    }

相关问题