Informatică, întrebare adresată de Halip99, 9 ani în urmă

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 AdiHero
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;
}


Alte întrebări interesante