这是小甲鱼第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. 为什么不建议直接使用 Async 注解?
  2. mysql常用到的几个命令
  3. Mac下Git与Github的简单使用
  4. 在Linux下编译安装Apache2(2)
  5. JNI的一个简单实例
  6. maven 构建增量包_使用Maven进行增量构建
  7. 卡夫卡如何分区_通过分区在卡夫卡实现订单担保人
  8. 域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...
  9. 什么是MPLS?多协议标签交换
  10. 极客大学架构师训练营 秒杀 搜索引擎 爬虫 Lucene Elastic Search 第18课 听课总结
  11. SSH工具连接谷歌云VPS实例
  12. lerna 项目中集成 babel lint-staged husky eslint
  13. 阿里巴巴食堂:看菜名我跪了~程序员:给我来个“油炸产品经理”
  14. Linux路由器的配置
  15. Node.js 下载与安装教程
  16. AES实现加解密-Java
  17. 大疆Tello开发教程
  18. excel 6位数字 转日期列
  19. ssh authentication魔鬼细节--.ssh文件夹权限
  20. Fiddler配置及使用教程

热门文章

  1. 使用面阵相机进行传送带视频流的拼接
  2. 中国电子束抗蚀剂市场深度研究分析报告
  3. c语言编程等腰三角形,用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成三个面积相等的三角形?...
  4. JAVA-Servlet项目接入支付宝网站支付
  5. r语言mfrow全程_R语言(绘图入门)
  6. 基于EasyNVR实现RTSP_Onvif监控摄像头Web无插件化直播监控
  7. 微信公众号基础功能搭建
  8. 什么是受管制的代码?什么是托管代码?
  9. Allegro中 设置指定的网络线宽的方法
  10. 深度技术GhostXP专业版V9.0之初体验