矩阵乘法

本文介绍了如何通过编程实现两个实数矩阵的乘法运算,并将结果矩阵的元素四舍五入保留一位小数,输出矩阵乘积。通过实例演示了输入与输出的交互过程。

时限:1000ms 内存限制:10000K  总时限:3000ms

描述: 对给定的两个“实数”矩阵,输出它们的乘积。

输入: 输入文件包括多组测试用例,以“0 0 0”标志文件结束,该行无需处理。 每个测试用例第一行为三个正整数m,n,k (1<=m,n,k<=10 ),表示以下m 行为一个m*n 的矩阵A ,再接下来的n 行为n*k 的矩阵B 。每行各元素间用一个空格隔开。

输出: 输出矩阵A 与矩阵B 的乘积C=A*B 。C 中元素一律“四舍五入”保留一位小数。 每个测试用例之间输出一个空行。

输入样例:

2 3 4
1 2 3
4 5 6
1 2 3 4
5 6 7 8
9 10 11 12
1 2 4
2 4
1.1 1.2 1.3 1.4


2.1 2.2 2.3 2.4
0 0 0

输出样例:

38.0 44.0 50.0 56.0

83.0 98.0 113.0 128.0

 

10.6 11.2 11.8 12.4

#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,ii;
    int m,n,k;
    scanf("%d%d%d",&m,&n,&k);
    while(m!=0&&n!=0&&k!=0)
    {
          double A[10][10]={0},B[10][10]={0},C[10][10]={0};
          for(i=0;i<m;i++)
             for(j=0;j<n;j++)
                scanf("%lf",&A[i][j]);
          for(i=0;i<n;i++)
             for(j=0;j<k;j++)
                scanf("%lf",&B[i][j]);

          for(i=0;i<m;i++)
             for(j=0;j<k;j++)
             {
                for(ii=0;ii<n;ii++)
                   C[i][j]+=A[i][ii]*B[ii][j];
             }
          for(i=0;i<m;i++)
          {
             for(j=0;j<k-1;j++)
                printf("%.1lf ",C[i][j]);
             printf("%.1lf\n",C[i][k-1]);
          }
          printf("\n");
          scanf("%d%d%d",&m,&n,&k);
    }    
    return 0;
}

 

转载于:https://www.cnblogs.com/IThaitian/archive/2012/07/10/2584502.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值