搜索

C语言,计算机语言

已知矩阵A(3*3)和B(3*3)如下所示,编程实现A和B相乘,结果放在C(3*3)中,并按矩阵形式(3行3列)输出C(3*3)。
头像
1186 次浏览2020.07.12 提问
10

最新回答(2条回答)

头像
2020.07.16 回答

我试着写了一个计算任意整型方阵相乘的程序:

#include <stdio.h>

int main()

{

    int order;

    printf("请输入需要计算的方阵的阶数:");

    scanf("%d", &order);

    int A[order][order];

    int B[order][order];

    int C[order][order];

    printf("输入方阵A的元素:\n"); 

    for (int i = 0; i < order; i++)

    {

        for (int j = 0; j < order; j++)

        {

            scanf("%d,", &A[i][j]);

        }

        while (getchar() != '\n')

            continue;

    }

    printf("输入方阵B的元素:\n");

    for (int i = 0; i < order; i++)

    {

        for (int j = 0; j < order; j++)

        {

            scanf("%d,", &B[i][j]);

        }

        while (getchar() != '\n')

            continue;

    }

    int temp = 0;

    for (int i = 0; i < order; i++)

    {

        for (int j = 0; j < order; j++)

        {

            for (int k = 0; k < order; k++)

            {

                temp += A[i][k] * B[k][j];    

            }

            C[i][j] = temp;

            temp = 0;

        }

    }

    printf("相乘的结果为:\n");

    for (int i = 0; i < order; i++)

    {

        for (int j = 0; j < order; j++)

        {

            printf("%d,", C[i][j]);

        }

        printf("\n");

    }

    return 0;

}

运行结果:

抢首赞
头像
2020.07.12 回答

真心不难(可能是我把题意理解错了?)

给个思路:

此题可以只定义两个数组。用嵌套输入和取出来直接挨个相乘,然后直接输出。

就是在第二层循环外cout<<endl;。

抢首赞
置顶