程序调试--矩阵的乘法运算

2020年1月17日 1322点热度 0人点赞 0条评论

程序调试--矩阵的乘法运算

时间: 1ms        内存:128M

描述:

输入两个矩阵。输出矩阵乘法运算的结果,如果不能进行矩阵乘法运算,则输出一行“Error”。
如果第1个矩阵的行数和列数为 n1, m1(1<=n1<=100,1<=m1<=100),第2个矩阵的行数和列数为 n2, m2(1<=n2<=100,1<=m2<=100)。
矩阵乘法运算规则为:
矩阵1的第1行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第1行的第1个元素
矩阵1的第2行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第2行的第1个元素
……
矩阵1的第n1行的……
例如: n1=3,m1=2,n2=2,m2=3
1 2 3              1 2           1*1+2*3+3*5   1*2+2*4+3*6          22 28
4 5 6     *        3 4     =    4*1+5*3+6*5   4*2+5*4+6*6    =    49 64
                      5 6
 

         

你的任务是编写函数 void input(...); ,并修改下面给出的含有错误代码的函数 void mulMatrix(....);

void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101])
{
     for(int i=1; i<=n1; i++)
        for(int j=1; j<=m2; j++)
        {
            for(int k=1; k<=m1; k++)
            {
                sum=a[i][k]*b[k][j];
            }
            c[i][j]=sum;
        }
}

输入:

输入n组数据
每组数据的输入格式如下:
第1行输入两个整数 n1, m1(1<=n1<=100,1<=m1<=100),分别代表第1个矩阵的行数和列数。
接下来输入n1行数据,每行m1个float数,表示输入第1个矩阵的各元素的值。
下一行输入两个整数 n2, m2(1<=n2<=100,1<=m2<=100),分别代表第2个矩阵的行数和列数。
接下来输入n2行数据,每行m2个float数,表示输入第2个矩阵的各元素的值。

输出:

每组数据输出一个结果矩阵
每组输出数据中间有一空行
结果矩阵元素为浮点数,要求输出为小数点后2位
元素与元素之间隔一空格

示例输入:

2
2 3
1 2 3
4 5 6
3 2
1 2
3 4
5 6

2 2
2 -1
1 4
3 2
1 2
2 -3
2 0

示例输出:

22.00 28.00
49.00 64.00

Error

提示:

参考答案:

解锁文章

没有看到答案?微信扫描二维码可免费解锁文章

微信扫描二维码解锁

使用微信扫描二维码打开广告页面后可以立即关闭,再刷新此页面即可正常浏览此文章

所跳转广告均由第三方提供,并不代表本站观点!

已经扫描此二维码?点此立即跳转

code

这个人很懒,什么都没留下

文章评论