首页 > 其他分享 >L1-048 矩阵A乘以B

L1-048 矩阵A乘以B

时间:2024-07-06 14:27:34浏览次数:3  
标签:输出 数组 048 矩阵 乘以 相乘 读入 L1 输入

给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列,B有Rb​行、Cb​列,则只有Ca​与Rb​相等时,两个矩阵才能相乘。

输入格式:

输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。

输出格式:

若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb,其中Ca是A的列数,Rb是B的行数。

输入样例1:

2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8

输出样例1:

2 4
20 22 24 16
53 58 63 28

输入样例2:

3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72

输出样例2:

Error: 2 != 3

C语言:

 矩阵A,B的乘法

A的列数需要与B的行数相等

细节:

因为此时的二维数组的长度需要根据输入来确定,所以定义数组需要在读入数据之后 。

首先读入矩阵A有几行几列,然后根据读入的数据定义二维数组,使用双层for循环读入数据存入二维数组中。

矩阵B同样操作。

读入两个矩阵之后根据要求判断是否能进行乘法运算,不可相乘则按要求进行输出,可以相乘则继续往下走。

设置三层for循环使两个矩阵的元素相乘并相加再进行输出,最后按照要求输出空格与换行。

#include <stdio.h>
int main()
{
	int r1,c1,r2,c2,i,j,k,element,count=1;
	scanf("%d %d",&r1,&c1);//读入第一个矩阵行列数
	int A[r1][c1];
	//因为此时的二维数组的长度需要根据输入来确定,所以定义数组需要在读入数据之后  
	for(i=0;i<r1;i++)//循环读入第一个矩阵 
	{
		for(j=0;j<c1;j++)
		{
			scanf("%d",&A[i][j]);
		}
	}
	scanf("%d %d",&r2,&c2);//读入第二个矩阵行列数 
	int B[r2][c2];
	//因为此时的二维数组的长度需要根据输入来确定,所以定义数组需要在读入数据之后 
	for(i=0;i<r2;i++)//循环读入第二个矩阵 
	{
		for(j=0;j<c2;j++)
		{
			scanf("%d",&B[i][j]);
		}
	}
	if(c1!=r2)
	{
		printf("Error: %d != %d\n",c1,r2);
	}
	else
	{
		printf("%d %d\n",r1,c2);//输出计算后的行列数 
		for(i=0;i<r1;i++)//三层for循环实现矩阵A的行*B的列 
		{
			for(k=0;k<c2;k++)
			{
				element=0;//暂时存储计算所得的元素值,每计算一个新元素进行清零 
				for(j=0;j<c1;j++)
				{
					element+=(A[i][j]*B[j][k]);
				}
				printf("%d",element);
				if(k<c2-1)
				{
					printf(" ");
				}
			}
			printf("\n");
		}
	}
	return 0;
}

 

标签:输出,数组,048,矩阵,乘以,相乘,读入,L1,输入
From: https://blog.csdn.net/m0_55661792/article/details/140228495

相关文章

  • L1-009 N个数求和 python
    python实现:需要考虑很多情况:如果只输入一个数:分子/分母是否有商,是否需要约分,如:8/3,-8/3,0/3。如果输入多个数:通分后分子>0,<0还是=0,分子/分母是否有商,是否需要约分。num=int(input())s=input()ifnum==1:fenzi=int(s.split("/")[0])fenmu=int(s.split("/")[1])......
  • 敏捷领导者(CAL1 / ALJ)认证
    没有领导力转型不会有业务转型;没有领导力的敏捷性就不会有业务的敏捷性。“领导企业转型必修课”敏捷领导力(CAL1/ALJ)认证2024年8月3-4日讲师:JimWang王军国际Scrum联盟认证导师CST、CALTrainer、ALJGuide、MBA、软硬件敏捷开发专家著有《Scrum实践精萃》和《敏捷教练......
  • L1-025 正整数A+B python
    python实现注:输入的数据需要在区间[1,1000]内s=input()loc=s.index("")a=s[:loc]b=s[loc+1:]ifa.isdecimal()andb.isdecimal():ifint(a)in[iforiinrange(1,1001)]andint(b)in[iforiinrange(1,1001)]:print("{a}+{b}={sum}......
  • OpenGL进阶系列1 - OpenGL1.x和2.x功能演进(上古历史)
    时间版本功能详细描述1992v1.0 NewList/EndList/CallListglspec10.pdfBegin/Endglspec10.pdfVertex/TexCoord/Color/Normal/Index/Rectglspec10.pdfMatrixMode/LoadMatrix/Multmatrixglspec10.pdfRoate/Translate/Scaleglspec10.pdf......
  • 修复《魔兽世界》更新后api-ms-win-core-com-l1-1-0.dll丢失问题的实战指南
    《魔兽世界》更新后api-ms-win-core-com-l1-1-0.dll丢失的快速修复,通过系统扫描、游戏重装与文件恢复,轻松解决dll缺失难题,重回艾泽拉斯大陆的冒险旅程。如果你在《魔兽世界》更新后遇到“api-ms-win-core-com-l1-1-0.dll”文件丢失的问题,可以尝试以下步骤来解决:1.系统文......
  • HC32L130 外部IO中断
    1.HC32L130外部端口PB2#include"app_SD3078.h"#defineRCC_RTC_INT_PORT SysctrlPeripheralGpio /*GPIO端口时钟*/#definePORT_RTC_INT GpioPortB /*GPIO端口*/#definePIN_RTC_INT GpioPin2 /*GPIO引脚*/voidApp_RTC_INTInit(void){stc_gpio_cfg_......
  • HC32L130/HC32L136开发之软件模拟IIC驱动AT24C64
    一、AT24C64电路图二、程序编码1.定义I2C总线连接的GPIO端口/*定义I2C总线连接的GPIO端口,用户只需要修改下面4行代码即可任意改变SCL和SDA的引脚*/#defineRCC_I2C_PORT   SysctrlPeripheralGpio      /*GPIO端口时钟*/#definePORT_I2C_SCL  ......
  • HC32L130读取SD3078时间
    一.SD3078电路图二.HC32L130IO模拟IIC 1.app_i2c_gpio.h/*****************************************************************************//**\fileapp_i2c_gpio.h****Headerfileforlcdfunctions******History:**-2024-06-21马天义微信:......
  • BTE1650 FBL1N/FBL2N/FBL3N/FBL5N-增加客制化字段 客商及科目描述
    TCODE:FIBF/BF24/BF34查找BTE事件:FIBF->环境->信息系统在清单中找到我们需要BTE事件,可以点击文件按钮查询事件的详细描述,点击模式函数模块找到具体的函数-SAMPLE_INTERFACE_00001650复制标准函数到自定义函数组实施BTEBF24或FIBF->设置->产品BF34或FIBF->设置->发布......
  • api-ms-win-shcore-scaling-l1-1-1.dll解析及缺失解决策略:确保Windows高DPI显示正常
    api-ms-win-shcore-scaling-l1-1-1.dll是Windows操作系统中的一个API接口库文件,属于WindowsShellCommonDLLs(Shell核心动态链接库)的一部分。这个特定的DLL文件与Windows的高DPI(每英寸点数)缩放功能紧密相关,支持应用程序在不同分辨率和缩放设置下正确显示界面元素,确保UI的清晰......