mnnu 2215 矩阵相加【简单题但好几次才ac】【至今不知打的第一遍哪里错了】


   
   

2215:矩阵相加

Time/Memory Limit:1000 MS/32768 K Submitted: 94  Accepted: 50

 Problem Description

给出两个行列式A,B,将A转置后与B相加。规定:若A,B的行数或列数不相等时,视空缺的位置为0(见Hints)。

 Input

每组第一行有四个整数n1,m1,n2,m2(0<n1,m1,n2,m2<100)。n1为A的行数,m1为A的列数,n2为B的行数,m2为B的列数。接下来分别有n1*m1个整数,和n2*m2个整数。

 Output

每组输出将A转置后+B后得到的矩阵。每一行每两个数之间一个空格。(最终结果矩阵中的元素不会超过2^31)。

 Sample Input

2 3 2 3
1 1 1
1 1 1
1 1 1
1 1 1

 Sample Output

2 2 1
2 2 1
1 1 0

 Hints

    
    
例如
1 2 3
4 5 6  
转置后:
1 4
2 5
3 6
 
1 1     1 1 1   2 2 1
1 1  +  1 1 1 = 2 2 1
1 1             1 1 0
方法一(AC)后面计算分两步来做

#include<stdio.h>#include<string.h>int main(){int n1,m1,n2,m2,i,j,m,n;int a[105][105],b[105][105],c[105][105];while(scanf("%d%d%d%d",&n1,&m1,&n2,&m2)!=EOF){for(i=0;i<=100;i++){for(j=0;j<=100;j++)a[i][j]=b[i][j]=c[i][j]=0;//初始化,你这特么是初始化么,一开始直接就a[100][100],打死你!}for(i=0;i<n1;i++){for(j=0;j<m1;j++)scanf("%d",&a[i][j]);}for(i=0;i<n2;i++){for(j=0;j<m2;j++)scanf("%d",&b[i][j]);}n=m1>n2?m1:n2;m=n1>m2?n1:m2;for(i=0;i<n1;i++){for(j=0;j<m1;j++)c[j][i]=a[i][j];}for(i=0;i<n2;i++){for(j=0;j<m2;j++)c[i][j]+=b[i][j];}for(i=0;i<n;i++){for(j=0;j<m;j++){if(j!=m-1)printf("%d ",c[i][j]);elseprintf("%d\n",c[i][j]);}}}return 0;}

#include<stdio.h>
#include<string.h>
int main()
{
	int n1,m1,n2,m2,i,j,m,n;
	int a[105][105],b[105][105],c[105][105];
	while(scanf("%d%d%d%d",&n1,&m1,&n2,&m2)!=EOF)
	{
		for(i=0;i<=100;i++)
		{
			for(j=0;j<=100;j++)
				a[i][j]=b[i][j]=c[i][j]=0;//初始化,你这特么是初始化么,一开始直接就a[100][100],打死你!
		}
		for(i=0;i<n1;i++)
		{
			for(j=0;j<m1;j++)
				scanf("%d",&a[i][j]);
		}
		for(i=0;i<n2;i++)
		{
			for(j=0;j<m2;j++)
				scanf("%d",&b[i][j]);
		}
		n=m1>n2?m1:n2;
		m=n1>m2?n1:m2;
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
				c[i][j]=a[j][i]+b[i][j];
		}	
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				if(j!=m-1)
					printf("%d ",c[i][j]);
				else
					printf("%d\n",c[i][j]);
			}
		}
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值