Cerința
Se dau două matrice cu elemente numere întregi. Calculați suma lor.
Date de intrare
Fișierul de intrare msuma.in conține pe prima linie numerele n m, reprezentând dimensiunile primei matrice. Urmează n linii cu câte m valori, elementele primei matrice.
Linia n+2 conține numerele p q, reprezentând dimensiunile celei de-a doua matrice. Urmează p linii cu câte q valori, elementele celei de-a doua matrice.
Date de ieșire
Fișierul de ieșire msuma.out va conține pe prima linie numerele S T, reprezentând dimensiunile matricei sumă. Următoarele S linii vor conține câte T valori separate prin exact un spațiu, reprezentând valorile din matricea sumă.
Restricții și precizări
1 ≤ n , m , p , q ≤ 100;
valoarea absolută a elementelor fiecărei matrice vor fi mai mici decât 1.000.000.000;
adunarea matricelor se poate efectua pentru fiecare test.
Exemplu
msuma.in
3 4
2 1 4 6
5 -8 5 5
2 5 -2 4
3 4
3 7 -5 0
1 -4 1 5
-4 2 8 7
msuma.out
3 4
5 8 -1 6
6 -12 6 10
-2 7 6 11
Răspunsuri la întrebare
Răspuns de
1
#include <fstream>
using namespace std;
ifstream fin("msuma.in");
ofstream fout("msuma.out");
int a[101][101],b[101][101],c[101][101];
int main()
{
int n,m,p,q;
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>a[i][j];
fin>>p>>q;
for(int i=1;i<=p;i++)
for(int j=1;j<=q;j++)
fin>>b[i][j];
int maxn=0,maxm=0;
if(n>p) maxn=n;
else maxn=p;
if(m>q) maxm=m;
else maxm=q;
for(int i=1;i<=maxn;i++)
for(int j=1;j<=maxm;j++)
c[i][j]=a[i][j]+b[i][j];
fout<<maxn<<" "<<maxm<<"\n";
for(int i=1;i<=maxn;i++)
{
for(int j=1;j<=maxm;j++)
fout<<c[i][j]<<" ";
fout<<"\n";
}
return 0;
}
using namespace std;
ifstream fin("msuma.in");
ofstream fout("msuma.out");
int a[101][101],b[101][101],c[101][101];
int main()
{
int n,m,p,q;
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>a[i][j];
fin>>p>>q;
for(int i=1;i<=p;i++)
for(int j=1;j<=q;j++)
fin>>b[i][j];
int maxn=0,maxm=0;
if(n>p) maxn=n;
else maxn=p;
if(m>q) maxm=m;
else maxm=q;
for(int i=1;i<=maxn;i++)
for(int j=1;j<=maxm;j++)
c[i][j]=a[i][j]+b[i][j];
fout<<maxn<<" "<<maxm<<"\n";
for(int i=1;i<=maxn;i++)
{
for(int j=1;j<=maxm;j++)
fout<<c[i][j]<<" ";
fout<<"\n";
}
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Informatică,
9 ani în urmă