【C语言】矩阵乘法

相信你是最棒哒!!!

文章目录

题目描述

正确代码

总结


题目描述

根据两个矩阵相乘的法则:

矩阵A乘矩阵B,得矩阵C,方法是A的第一行元素分别对应乘以B的第一列元素各元素,相加得C11,A的第一行元素对应乘以B的第二列个元素,相加得C12,以此类推,C的第二行元素为A的第二行元素按上面方法与B相乘所得结果,以此类推。

现有矩阵A和B,都是n×n阶。请你输出相乘后的矩阵C。

输入描述

 正整数n(n<15),接着输入两个n*n矩阵的各元素。

输出描述

输出两个矩阵的积。

样例输入

3
2 5 6
8 10 9
12 4 3
5 6 13
14 5 36
4 8 17

样例输出

104 85 308 
216 170 617 
128 116 351 

正确代码

注释版
#include <stdio.h> int a[100][100], b[100][100], c[100][100]; // 定义三个100x100的整型二维数组,分别用于存储矩阵a、b和结果矩阵cint main() 
{int i, j, k; // i、j、k,用于循环计数int n; // 定义一个整型变量n,用于存储矩阵的行数和列数scanf("%d", &n); // 读取用户输入的矩阵大小n// 读取矩阵a的元素for(i = 0; i < n; i++){for(j = 0; j < n; j++)scanf("%d", &a[i][j]); // 读取矩阵a的第i行第j列的元素}// 读取矩阵b的元素for(i = 0; i < n; i++){for(j = 0; j < n; j++)scanf("%d", &b[i][j]); // 读取矩阵b的第i行第j列的元素}// 计算矩阵a和b的乘积,结果存储在矩阵c中for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {for (int k = 0; k < n; k++) {c[i][j] += a[i][k] * b[k][j]; // 根据矩阵乘法的定义,计算c的第i行第j列的元素}}}// 打印矩阵c的元素for(i = 0; i < n; i++){for(j = 0; j < n; j++){printf("%d ", c[i][j]); // 打印矩阵c的第i行第j列的元素}printf("\n"); // 每打印完一行后换行}return 0; // 返回0,表示程序正常结束
}
简洁版
#include <stdio.h>
int a[20][20], b[20][20], c[20][20];
int main()
{int i, j, k, n;scanf("%d", &n);for (i = 0; i < n; i++)for (j = 0; j < n; j++)scanf("%d", &a[i][j]);for (i = 0; i < n; i++)for (j = 0; j < n; j++)scanf("%d", &b[i][j]);for (i = 0; i < n; i++)for (j = 0; j < n; j++)for (k = 0; k < n; k++)c[i][k] += a[i][j] * b[j][k];for (i = 0; i < n; i++) {for (j = 0; j < n; j++)printf("%d ", c[i][j]);printf("\n");}return 0;
}

总结

重要一步   ---->  c[i][k] += a[i][j] * b[j][k];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jackson 的@JsonSerialize 注解

1. 概述 Jackson 提供了一套强大的注解&#xff0c;用于定制 Java 对象与 JSON 之间的序列化和反序列化过程。其中一个非常灵活的注解是JsonSerialize&#xff0c;它用于为对象指定自定义序列化器。在本教程中&#xff0c;我们将通过一个员工管理系统来深入了解这个注解的使用…

2025年前端面试热门题目——HTML|CSS|Javascript|TS知识

以下是对这些 HTML 面试问题的详细解答&#xff1a; 1. HTML 的 src 和 href 属性有什么区别? src (Source) 属性&#xff1a; 用于嵌入资源&#xff0c;例如图像、脚本或 iframe。加载资源时&#xff0c;当前页面的加载会暂停&#xff0c;直到资源加载完成。常用于 <img&g…

Redis篇--常见问题篇7--缓存一致性2(分布式事务框架Seata)

1、概述 在传统的单体应用中&#xff0c;事务管理相对简单&#xff0c;通常使用数据库的本地事务&#xff08;如MySQL的BEGIN和COMMIT&#xff09;来保证数据的一致性。然而&#xff0c;在微服务架构中&#xff0c;由于每个服务都有自己的数据库&#xff0c;跨服务的事务管理变…

简易分页制作

简易分页功能实现 分页是一种常见的前端功能&#xff0c;特别是在需要展示大量数据时。它通过将数据分割成多个页面&#xff0c;帮助用户更容易浏览并提高页面加载性能。本文将介绍一个简易分页的实现思路及其代码实现&#xff0c;旨在帮助开发者快速理解并实现分页功能。 功…

基于winform的五子棋机器人系统开发 (更新中ing)

一、实物硬件表拟定 笔记本电脑、正运动控制器、三个汇川伺服驱动器、三个滑动模组 二、软件开发 注意细节&#xff1a; ①主界面使用三个panel容器进行构建 pannel容器设置属性参数&#xff1a;(1) dock ② 添加自定义控件&#xff1a;首先创建类库&#xff0c;删除默认…

Springmvc,spring ,mybatis,整合,ssm

上一章内容&#xff1a; 1.spring框架:作用 开源的框架--提供IOC和AOPIOC控制反转 把创建对象的权力交于spring创建&#xff0c;并管理对象的生命周期&#xff0c;通过DI完成对象属性的注入。 ​ 2. spring配置中<bean>也可以使用注解Component Controller Service Repo…

微服务分布式(二、注册中心Consul)

首先我们需要安装consul,到官网下载Consul Install | Consul | HashiCorp Developer 在解压的consul目录下 执行启动命令 consul agent -dev 启动服务 -dev表示开发模式 -server表示服务模式 启动后在浏览器访问8500端口http://localhost:8500/可以看到服务管理界面 项目…

示波器--UNI-T 优利德 UT4102C 使用介绍

示波器--UNI-T 优利德 UT4102C 使用介绍 1 介绍图示特点 2 UTP04示波器探头&#xff08;100M带宽&#xff09;3 功能介绍4 示例RS232 电平信号测试 参考 1 介绍 图示 特点 2GS/s的实时采样率&#xff1a;设备能够以每秒2吉萨&#xff08;Giga Samples per second&#xff09;…

半连接转内连接规则的原理与代码解析 |OceanBase查询优化

背景 在查询语句中&#xff0c;若涉及半连接&#xff08;semi join&#xff09;操作&#xff0c;由于半连接不满足交换律的规则&#xff0c;连接操作必须遵循语句中定义的顺序执行&#xff0c;从而限制了优化器根据参与连接的表的实际数据量来灵活选择优化策略的能力。为此&am…

基础库正则表达式

我们已经可以用requests 库来获取网页的源代码&#xff0c;得到 HTML 代码。但我们真正想要的数据是包含在 HTML代码之中的&#xff0c;要怎样才能从 HTML,代码中获取想要的信息呢?正则表达式就是其中一个有效的方法。 本篇博客我们将了解一下正则表达式的相关用法。正则表达…

Azure虚拟机非托管磁盘大小调整

想要扩容一个Azure VM 的磁盘空间&#xff0c;门户里面竟然无法扩展&#xff0c;点点鼠标就完事的时代在离去&#xff0c;微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空&#xff0c;根本没有返回磁盘。 不过使…

PID 控制算法理论背景:飞控领域的核心调控机制(1)

在飞控工程领域&#xff0c;PID 控制算法占据着极为关键的地位&#xff0c;是实现飞行器精确稳定控制的基石。PID 作为比例&#xff08;P&#xff09;、积分&#xff08;I&#xff09;、微分&#xff08;D&#xff09;的集成代表&#xff0c;构建起了控制系统的核心架构&#x…

复合翼与倾转旋翼飞行器:设计与控制算法对比

一、引言 复合翼&#xff08;Compound Wing&#xff09;和倾转旋翼&#xff08;Tilt - Rotor&#xff09;飞行器在现代航空领域均占据独特地位&#xff0c;二者在设计和控制算法方面展现出显著差异。这些差异在飞行模式切换、推进系统设计、控制算法复杂度以及飞行器稳定性等多…

Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)

一、自定义指令 使用步骤 1. 注册 (全局注册 或 局部注册) &#xff0c;在 inserted 钩子函数中&#xff0c;配置指令dom逻辑 2. 标签上 v-指令名 使用 1、自定义指令&#xff08;全局&#xff09; Vue.directive("指令名"&#xff0c;{ 指令的配置项 insert…

一次BC站点渗透实录

初探 打开首页 简单信息收集: IP地址&#xff1a;美国加利福尼亚洛杉矶 无CDN 中间件:Nginx 80端口直接突破&#xff0c;故未进行端口扫描 渗透思路 一般这种BC站点&#xff0c;有几种思路可以切入&#xff1a; 1&#xff09;通过SQL注入查到管理员账号密码&#xff0c;扫描…

java 集合对象

Java 基础之集合_java集合继承关系图-CSDN博客 集合可以有序或无序&#xff0c;重复或不能重复&#xff0c;空或不能空。 List<> 集合&#xff0c;是有序&#xff0c;允许重复元素&#xff0c;允许空元素 1、ArrayList<> 非线程安全 2、LInkedList<> 非线…

深入探索 ClickHouse:性能优化之道

在大数据处理的广袤天地里&#xff0c;ClickHouse 宛如一颗璀璨的明星&#xff0c;以其卓越的性能为海量数据的存储与查询提供了强大助力。但要想让 ClickHouse 发挥出极致效能&#xff0c;性能优化至关重要。今天&#xff0c;就让我们一同深入探寻 ClickHouse 的性能优化之路。…

web实操8-cookie

会话技术 会话&#xff1a; 一次会话中包含多次请求和响应。 客户端浏览器访问服务器的资源&#xff0c;只要客户端或者服务器端不关闭&#xff0c;这始终在一次会话范围内&#xff0c;这一次会话范围内可以包含多次请求并且收到多次相应。 一次会话&#xff1a;浏览器第一…

Day50 图论part01

图论理论基础 大家可以在看图论理论基础的时候&#xff0c;很多内容 看不懂&#xff0c;例如也不知道 看完之后 还是不知道 邻接矩阵&#xff0c;邻接表怎么用&#xff0c; 别着急。 理论基础大家先对各个概念有个印象就好&#xff0c;后面在刷题的过程中&#xff0c;每个知识…

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单&#xff0c;单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键&#xff0c;选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆&#xff0c;如下图所示&#xff0c;然后点击“下一页” 1.3、…