zoukankan      html  css  js  c++  java
  • L1-8 矩阵A乘以B(15 分)

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

    • 输入格式:
      输入先后给出两个矩阵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
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int i,j,k,x,y,n,m,a[124][124],b[124][124],c;
    	scanf("%d%d",&x,&y);
    	for(i=0;i<x;i++)
    	{
    		for(j=0;j<y;j++)
    		{
    			scanf("%d",&a[i][j]);
    		}
    	}
    	scanf("%d%d",&m,&n);
    	for(i=0;i<m;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			scanf("%d",&b[i][j]);
    		}
    	}
    	if(y!=m)
    	{
    		printf("Error: %d != %d",y,m);
    	}
    	else
    	{
    		printf("%d %d
    ",x,n);
    		for(i=0;i<x;i++)
    		{
    			if(i)
    			printf("
    ");
    			for(j=0;j<n;j++)
    			{
    				c=0;
    				for(k=0;k<y;k++)
    				{
    					c+=a[i][k]*b[k][j];
    				}
    				if(j)
    				printf(" ");
    				printf("%d",c);
    			}
    		}
    	}
    }
    
  • 相关阅读:
    Tapestry AppModule中的方法
    Tapestry Grid
    Tapestry5之AutoLoading Module
    Tapestry Submits
    Tapestry SubmitLink
    再读Struts2之一:总括
    Java war包取之外的properties文件
    用ORACLE的高级复制实现内外网数据同步【转】
    在Oracle中实现数据库的复制
    解决ORA12560: TNS: 协议适配器错误
  • 原文地址:https://www.cnblogs.com/ai1045152332/p/8577992.html
Copyright © 2011-2022 走看看