3 条题解

  • 4
    @ 2023-7-31 21:47:33

    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
      @ 2023-7-7 15:41:14

      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)))
      

      思路:

      这个代码实现了两个矩阵的加法。下面是代码的解析和思路:

      1. 首先,从标准输入中读取矩阵的行数和列数,并将它们存储在变量n和m中。
      2. 创建两个二维数组a和b,分别用来存储矩阵A和矩阵B的元素。
      3. 使用嵌套的for循环来逐行逐列地读取用户输入的矩阵A和矩阵B的元素,并将它们分别存储在数组a和b中。
      4. 使用另一组嵌套的for循环,对于每个元素,将矩阵A和矩阵B对应位置的元素相加,然后将结果存储回矩阵A的相应位置。
      5. 最后,再次使用嵌套的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
        @ 2023-6-25 13:33:36

        先来科普下

        矩阵加法一般是指两个矩阵把其相对应元素加在一起的运算,减法反之。

        image

        1、行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。矩阵相加(相减)就是对应位置的数字相加(相减)。只有同型矩阵才能做加减运算。矩阵加减满足交换律和结合律。几何意义是矩阵加减就是对矩阵列空间下的基向量做变换。

        image

        2、只有同型矩阵之间才可以进行加法运算,将两个矩阵相同位置的元相加即可。数乘一个矩阵为啥其中每一个元素都要乘以这个数,而行列式则不是。

        image

        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
        上传者