3 条题解
-
4
yasuo👀️
#include <iostream> int main(){ int m,n,q,sum=0,a[105][105]={};std::cin>>m>>n; for(int c=0;c<2;c++) for(int i=0;i<m;i++) for(int j=0;j<n;j++){ std::cin>>q;a[i][j]+=q;} for(int i=0;i<m;i++){ for(int j=0;j<n;j++) std::cout<<a[i][j]<<" "; puts("");} return 0;}
-
1
PY:
n, m = map(int, input().split()) # 获取输入的行数和列数 # 初始化矩阵A A = [] for _ in range(n): row = list(map(int, input().split())) A.append(row) # 初始化矩阵B B = [] for _ in range(n): row = list(map(int, input().split())) B.append(row) # 计算矩阵和 C = [] for i in range(n): row = [] for j in range(m): row.append(A[i][j] + B[i][j]) C.append(row) # 输出结果 for row in C: print(' '.join(map(str, row)))
思路:
这个代码实现了两个矩阵的加法。下面是代码的解析和思路:
- 首先,从标准输入中读取矩阵的行数和列数,并将它们存储在变量n和m中。
- 创建两个二维数组a和b,分别用来存储矩阵A和矩阵B的元素。
- 使用嵌套的for循环来逐行逐列地读取用户输入的矩阵A和矩阵B的元素,并将它们分别存储在数组a和b中。
- 使用另一组嵌套的for循环,对于每个元素,将矩阵A和矩阵B对应位置的元素相加,然后将结果存储回矩阵A的相应位置。
- 最后,再次使用嵌套的for循环将矩阵A打印输出到标准输出,以展示矩阵加法的结果。
解析: 首先读取输入矩阵的行数和列数,然后分别读取两个矩阵的元素并进行相加操作,最后将结果输出。它通过两次嵌套的for循环来遍历矩阵的所有元素,并使用临时变量存储计算结果。
C++
#include<stdio.h> int main() { int n,m,i,j; int a[100][100]; int b[100][100]; scanf("%d %d",&n,&m); for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&b[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { a[i][j]=a[i][j]+b[i][j]; } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%d ",a[i][j]); } printf("\n"); } }
-
1
先来科普下
矩阵加法一般是指两个矩阵把其相对应元素加在一起的运算,减法反之。
1、行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。矩阵相加(相减)就是对应位置的数字相加(相减)。只有同型矩阵才能做加减运算。矩阵加减满足交换律和结合律。几何意义是矩阵加减就是对矩阵列空间下的基向量做变换。
2、只有同型矩阵之间才可以进行加法运算,将两个矩阵相同位置的元相加即可。数乘一个矩阵为啥其中每一个元素都要乘以这个数,而行列式则不是。
3、m行n列的两个矩阵相加后得到一个新的m行n列矩阵。在任两个向量空间内取定基底,并取两基底的联集为向量空间直和的基底,则两空间上的线性变换的直和可以表成两矩阵的直和。只要其大小相同的话。A-B内的各元素为其相对应元素相减后的值,且此矩阵会和A、B有相同大小。
#include<iostream> #include <cstdio> using namespace std; int main() { int n,m; cin>>n>>m;//输入数组大小 int a[n][m],b[n][m],c[n][m]; //输入数组a for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>a[i][j]; } } //输入数组b 并相加存入数组c for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>b[i][j]; c[i][j]=b[i][j]+a[i][j]; //数组a+数组b存入c中 } } //输出数组 ab的和 for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cout<<c[i][j]<<" ";//每个数一个空格 } cout<<endl; //每行一个回车 } return 0; }
- 1
信息
- ID
- 206
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 78
- 已通过
- 60
- 上传者