这是小甲鱼第25课的作业,要求输入两个矩阵,计算矩阵相乘的运算结果,并以合适的格式打印出来

矩阵相乘计算器

难点:

矩阵相乘的循环嵌套

如何输出横向的打印结果→借鉴之前的logo打印方式,横向组合,按行打印

小技巧

这里我将每个矩阵的打印代码写成了函数,与答案相比更加简洁。

// 输入维数 输入矩阵 矩阵计算函数 打印函数

// 矩阵1:M×P

// 矩阵2:P×N

#include

void printMat(int *p, int mat_rows, int mat_cols, int n)

{

int ii = 0;

if (n < mat_rows)

{

printf("|"); //one space

for (ii = 0; ii < mat_cols; ii++)

{

printf(" %2d ", *(p+ii));

}

printf("|");

}

else

{

printf(" "); //one space

for (ii = 0; ii < mat_cols; ii++)

{

printf(" ");

}

printf(" ");

}

}

int main(void)

{

// 确定矩阵维数

int M, P, N;

printf("请输入矩阵1的尺寸(M*P): ");

scanf("%d*%d", &M, &P);

printf("请输入矩阵2的尺寸(P*N): ");

scanf("%d*%d", &P, &N);

// 定义空矩阵

int mat_a[M][P];

int mat_b[P][N];

int mat_c[M][N]; // 初始化 可变数组需要手动初始化

int i = 0, j = 0;

for (i = 0; i < M; i++)

{

for (j = 0; j < N; j++)

{

mat_c[i][j] = 0;

}

}

// 录入矩阵数据 使用i,j分层循环

printf("请输入矩阵1: \n");

for (i = 0; i < M; i++)

{

for (j = 0; j < P; j++)

{

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

}

}

printf("请输入矩阵2: \n");

for (i = 0; i < P; i++)

{

for (j = 0; j < N; j++)

{

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

}

}

// 分析矩阵计算的循环嵌套

// 矩阵C有M*N个元素,最两分别为M和N

for (i = 0; i < M; i++)

{

for (j = 0; j < N; j++)

{

int sum = 0;

// 每个元素需要求和得到结果,又是一层循环

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

{

sum += mat_a[i][k] * mat_b[k][j];

}

mat_c[i][j] = sum;

}

}

// 按行打印结果 按行组装

// M和P指定行数,取两者的较大值

int row = M > P ? M : P;

for (int n = 0; n < row; n++)

{

// mat_a

printMat(&mat_a[n][0], M, P, n);

// print *

if (n == row / 2)

printf(" * ");

else

printf(" ");

// mat_b

printMat(&mat_b[n][0], P, N, n);

// print =

if (n == row / 2)

printf(" = ");

else

printf(" ");

// mat_c

printMat(&mat_c[n][0], M, N, n);

printf("\n");

}

return 0;

}

矩阵在线计算机,矩阵计算器相关推荐

  1. proteus矩阵按键计算机,矩阵键盘检测Proteus仿真电路图这里将16个按键按照4*4排列...

    该按钮可以说是51单片机项目开发的重要组成部分,是51单片机IO端口输入的重要方式.我们可以通过按下按钮来控制微控制器执行相应的程序,以获得所需的效果. 51单片机的键输入主要有两种.一种是独立密钥. ...

  2. 结构力学计算机矩阵位移法,结构力学-矩阵位移法.ppt

    <结构力学-矩阵位移法.ppt>由会员分享,可在线阅读,更多相关<结构力学-矩阵位移法.ppt(42页珍藏版)>请在装配图网上搜索. 1.结构力学,2 / 42,第七节 平面刚 ...

  3. 高中计算机矩阵算法ppt,矩阵及其基本算法.ppt

    <矩阵及其基本算法.ppt>由会员分享,可在线阅读,更多相关<矩阵及其基本算法.ppt(32页珍藏版)>请在人人文库网上搜索. 1.矩阵及其基本算法,计13 刘汝佳,矩阵及其基 ...

  4. 【JAVA】小米集团-2021校招-算法方向在线考试(矩阵相乘+盒子包裹问题)

    前言 楼主参加笔试之前去字节面试了,又是被虐的一次,所以笔试迟到40分钟,而且被字节虐的脑子转不动了,今天笔试很简单,但是我做得不是很理想,希望大家多多说一下自己的思路.祝大家都有心仪的offer. ...

  5. 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...

    作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...

  6. 什么是单应矩阵和本质矩阵

    知乎上面的大牛还是很多,直接搜Homography或者单应矩阵就能得到很多大神的回答,可能回答中的一句话或者一个链接就够自己学习很久. 其实在之前研究双目视觉的时候就接触了对极几何,通过视觉就可以得到 ...

  7. 模型矩阵、视图矩阵、投影矩阵

    模型视图投影矩阵的作用,就是将顶点从局部坐标系转化到规范立方体(Canonical View Volnme)中.总而言之,模型视图投影矩阵=投影矩阵×视图矩阵×模型矩阵,模型矩阵将顶点从局部坐标系转化 ...

  8. WebGL矩阵变换总结(模型矩阵,视图矩阵,投影矩阵)

    矩阵变换总结(模型矩阵,视图矩阵,投影矩阵) 最近在开发项目的时候,常常用到Three.js,用起来很方便.可是,当引擎迭代升级的时候,以前的很多的技巧,并不一定使用最新的引擎.我认为应当对底层的原生 ...

  9. strassen矩阵乘法 java_矩阵乘法Strassen算法

    矩阵乘法是种极其耗时的运算.以 为例,其中 和 都是 矩阵.根据矩阵乘法的定义, 中的每个元素需要按照如下方式计算 式(4.8)包含一个 次的循环,因此计算 的时间复杂度为 .而 共有 个元素,因此总 ...

最新文章

  1. 50~80万项目需求|室内场景三维重建项目
  2. 吃透Java中的动态代理
  3. 动态规划之-----单调递增最长子序列(nyoj17)
  4. 【转】visual studio 2012进行C语言开发[图文]
  5. paramiko -SSH学习
  6. elementui el-from 怎样显示图片_vue2.0使用weui.js的uploader组件上传图片(兼容移动端)...
  7. SpringBoot:搭建第一个Web程序
  8. V.35协议转换器指示灯告警常见故障以及排除方法解析
  9. 【Java】Date类和Calendar类必知必会
  10. android webserver mysql,Android手机变身Web服务器,BitWebServer简单评测
  11. Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
  12. eclipse中SVN分支合并到主干
  13. 记录:pycharm的强大之处之两个文件代码的比对
  14. 金融风控实战——可解释人工智能技术
  15. 2.(leaflet篇)leaflet加载接入百度地图
  16. iOS动态库重签名步骤
  17. QQ微信等分享链接时系统提取的标题和图片代码
  18. 【英语:语法基础】B2.核心语法-动词
  19. 微信电脑版只能扫码登录的原因,你一定想不到
  20. 群晖ds216j如何安装迅雷软件

热门文章

  1. 豫让刺杀赵襄子故事原文/白话文翻译?士为知己者死,女为说己者容出自哪?
  2. 转区系统开放艾欧尼亚转入服务器,【英雄联盟】转区系统开放艾欧尼亚转入服务...
  3. 华泰单因子测试之换手率类因子
  4. 【软件教程】如何将夸克网盘挂载为本地磁盘【Docker+AList+RaiDrive】
  5. Word文档删除最后一页空白页的超强方法(亲测有效)
  6. 计算机的信息安全教学反思,信息安全 教学设计 教学反思.doc
  7. 阿里开源新一代单元测试 Mock 工具!
  8. excel自动计算体育成绩
  9. FPGA自学笔记--串口通信发送多字节数据(verilog版)
  10. Express(一) ——简单入门