Description

求两个矩阵A、B的乘积C=AB。根据矩阵乘法的定义,只有A的列数和B的行数相同才能相乘。可以确保所有运算结果都在int类型的范围之内。

Input

输入数据为多个矩阵(最少2个),每个矩阵以两个正整数m和n开始,满足0<m,n<=100,接下来为一个m行n列的矩阵A。当输入的m和n均为0时,表示输入数据结束。

Output

对输入的矩阵两两相乘:第1个和第2个相乘、第1个和第2个相乘的结果和第3个相乘……按顺序输出矩阵相乘的结果:每行两个元素之间用一个空格分开,每行最后一个元素之后为一个换行,在下一行开始输出矩阵的下一行。

若前k个矩阵相乘的结果和第k+1个矩阵无法相乘(即不满足矩阵乘法定义),则输出“Not satisfied the definition of matrix multiplication!”。然后用第k+1个矩阵去和第k+2个矩阵相乘。最后一个矩阵只做乘数。

每两组输出之间用一个空行分隔开。

Sample Input

2 3

1 1 1

1 1 1

3 3

1 2 3

4 5 6

7 8 9

3 1

0

0

0

0 0

Sample Output

12 15 18

12 15 18

0 0

HINT

矩阵的乘法就是一行乘以一列加起来做一个元素。

Append Code

#include<stdio.h>
#include<string.h>
/*思路*/
//    创建两个数组,一个数组a装当前输入的数组,一个数组b装之前的数组结果
//    循环外先输入m和n,判断条件是m和n!=0;
//    子函数输入m,n并给a赋值
//    先判断输入的是第几组数据,分别处理
//    是第一组,用flag=0为第一组,先判断flag是不是等于0,等于0则进入第一组条件
//直接将a数组的所有值赋给b,mn分别赋值给xy,flag++
//    不是第一组的话,如果y==m,进入子函数使数组相乘,创建一个临时数组c,
//用来收录ab相乘的结果。
//输出c,再将c赋值给b,y=n,x不变。
//如果y!=m,则两组函数不可以相乘,那么输出“不能相乘”,flag=0,将刚输入的一组数赋值给void inputMtr(int m,int n,int a[101][101])
{for(int i=0; i<m; i++){for(int j=0; j<n; j++){scanf("%d",&a[i][j]);}}
}void output(int m,int n,int a[101][101])
{for(int i=0; i<m; i++){for(int j=0; j<n; j++){if(j!=0)printf(" %d",a[i][j]);else printf("%d",a[i][j]);}printf("\n");}
}void  MulMtr(int m,int n,int a[101][101],int x,int y,int b[101][101])
{int c[101][101]= {0};for(int i=0; i<x; i++){for(int j=0; j<n; j++){for(int k=0; k<y; k++){c[i][j]+=b[i][k]*a[k][j];}}}output(x,n,c);for(int i=0; i<x; i++){for(int j=0; j<n; j++){b[i][j]=c[i][j];}}}int main()
{freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);int a[101][101]= {0},b[101][101]= {0};int m,n,x,y,flag=0;// flag用来判断输入的是不是第一个scanf("%d %d",&m,&n);while(m&&n){inputMtr(m,n,a);if(flag!=0){if(flag!=1)printf("\n");if(y==m){MulMtr(m,n,a,x,y,b);y=n;}else{flag=0;printf("Not satisfied the definition of matrix multiplication!\n\n");}}if(flag==0){for(int i=0; i<m; i++){for(int j=0; j<n; j++){b[i][j]=a[i][j];}}x=m;y=n;}flag++;scanf("%d %d",&m,&n);}return 0;
}

为啥一直不对?

【山科OJ】Problem C: Matrix Problem (III) : Array Practice相关推荐

  1. Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec Memory Limit: 4 MB Submit: 8787

    Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec  Memory Limit: 4 MB Submit: 8787  ...

  2. 【山科OJ】Problem A: 社交网络的好友推荐

    Description Jack同学在人人网上注册了一个用户,发现人人网需要回答一些问题,而后网站根据自己的回答向自己推荐了一些具有相似回答的网友.Jack同学恰好正在学习编程,想编写一个程序来模拟这 ...

  3. 【山科OJ】Problem D: 藏头诗

    Description 有个小伙暗恋同班的姑娘,但是苦于害羞腼腆不敢直抒胸臆.于是小伙打算写一首英文情诗给她.为了使这首情诗高端霸气上档次,小伙经过三天三夜的精心创作写了一首藏头的情诗.请问你能看出他 ...

  4. 问题 K: Sequence Problem (III) : Array Practice

    题目描述 整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列. 两整数序列A.B的和定义为一个新的整数序列C,序列C的长度是A.B两者中较长的一个,序列 ...

  5. Matrix Problem

    Matrix Problem 题意: 给你一个n * m的二维数据c,c的每个元素值为0或1 现在要求你构造同样大小的数组a和b,要求c[i][j] =='1'的话,a[i][j] = b[i][j] ...

  6. 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6336 Problem E. Matrix from Arrays Time Limit: 4000/20 ...

  7. 安科 OJ 1190 连接电脑 (并查集)

    时间限制:1 s 空间限制:128 M 传送门:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1190 题目描述 机房里有若干台电脑,其中有一些电脑已经 ...

  8. 山科机器人招聘| 算法总监及视觉、规划、融合定位算法工程师

    公司概况 山科机器人是国内领先.全球前十的花园机器人公司,主要从事智能花园机器人的研发和销售, 未来三年目标是成为全球前三的花园机器人公司.母公司浙江白马实业,年销售额约10亿元,产品以欧美市场为主, ...

  9. 山科oj2307 Problem C: Cherry

    这道题还是挺水的 我朋友的 #include <bits/stdc++.h> using namespace std; class Cherry {public:Cherry(double ...

  10. 【bzoj 入门OJ】[NOIP 热身赛]Problem C: 星球联盟(并查集)

    Problem C: 星球联盟 Time Limit: 4 Sec  Memory Limit: 256 MB Submit: 57  Solved: 15 [Submit][Status][Web ...

最新文章

  1. [转](不理想)Ubuntu下更改主显示器
  2. python语言怎么学-你们都是怎么学 Python 的?
  3. ASP.NET MVC3 + Ninject.Mvc3 依赖注入原来可以这么简单
  4. 重磅!阿里云MongoDB 5.0发布,速来围观新特性
  5. 路飞学城-python爬虫密训-第三章
  6. 判断sem信号量为零_将信号量递减为零的进程崩溃时,如何恢复信号量?
  7. 前端学习(1178):vue基础
  8. ip地址合不合法怎么看_电子印章合不合法?两部门再发意见认定
  9. resultset需要关闭吗_Java程序员都需要懂的「反射」
  10. HTML+CSS物业后台管理系统模板
  11. 独立站需要ERP系统吗?
  12. html用户名注册登录代码,HTML用户注册界面的实现
  13. 关于Faster Rcnn的一些理解
  14. 3DS MAX 导入骨骼动画插件
  15. 用C编程语言写出三行情书,用7种语言写的三行情诗,你一定没看过!
  16. 技术分享 | 大量 Opening tables 案例分析
  17. 为什么你做数据分析没思路?
  18. 校园网络远程登录虚拟机Linux问题解决
  19. 华中科技大学2019年计算机录取分数线,2019华中科技大学录取分数线
  20. 人事局计算机应用技术学院,计算机应用技术学校怎么样

热门文章

  1. CT图像去除金属伪影-MATLAB实现
  2. 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
  3. LaTex中各种文本框
  4. 计算智能——密码分析:面向对象的分析与设计之Use Cace图
  5. busboy文件上传遇到的坑,已解决
  6. 假设有一个英文文本文件,编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。...
  7. 浏览器到服务器简单流程图
  8. 计算机带给人们的负面影响,互联网给人们所带来的负面影响
  9. 微型计算机咋样插网卡,PCI网卡怎么装及插在哪 PCI网卡安装使用图文教程
  10. Android10支持dcip3,dcip3 相当于多少srgb