Rezolvare completă PbInfo #1313 Produs_Matrice

Cerința

Se dau dimensiunile a două matrice, A și B și valorile acestora. Calculați produsul lor .

Date de intrare

Fișierul de intrare produs_matrice.in conține pe prima linie numerele m n, apoi începând cu următoarea linie matricea A de dimensiuni (m,n) . Pe linia m+2 numărul p, apoi matricea B de dimensiuni (n,p) .

Date de ieșire

Fișierul de ieșire produs_matrice.out va conține matricea C , construită pe baza cerinței .

Restricții și precizări

  • 1 ≤ n , m , p ≤ 100
  • -10.000 ≤ A[i][j] , B[i][j] ≤ 10.000

Exemplu

produs_matrice.in

2 3
1 -2 3
0 1 -1
2
3 1
-1 -1
0 1

produs_matrice.out

5 6 
-1 -2 

Explicație

Dacă se înmulțeste A cu B și rezultatul se află în C , atunci elementul C[i][j] reprezintă suma de produse dintre elementele de pe linia i a matricei A cu elementele de pe coloana j a matricei B. Având exemplul nostru , luăm C[1][2] = A[1][1] * B[1][2] + A[1][2] * B[2][2] + A[1][3] * B[3][2].

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Produs_Matrice:

#include <fstream>

using namespace std ;

ifstream f ("produs_matrice.in") ;
ofstream g ("produs_matrice.out") ;

int A[105][105] , B[105][105] ;
long long C[105][105] ;

int main ()
{
 //citim
 int m , n , p ;
 f >> m >> n ;

 for ( int i = 1 ; i <= m ; ++i )
    for ( int j = 1 ; j <= n ; ++j )
        f >> A[i][j] ;

 f >> p ;

 for ( int i = 1 ; i <= n ; ++i )
    for ( int j = 1 ; j <= p ; ++j )
        f >> B[i][j] ;

 //calculam produsul
 for ( int i = 1 ; i <= m ; ++i )
    for ( int j = 1 ; j <= p ; ++j )
        for ( int k = 1 ; k <= n ; ++k )
            C[i][j] = C[i][j] + A[i][k] * B[k][j] ;

 //afisam
 for ( int i = 1 ; i <= m ; ++i )
    {
     for ( int j = 1 ; j <= p ; ++j )
        g << C[i][j] << " " ;
     g << "\n" ;
    }

}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1313 Produs_Matrice

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1313 Produs_Matrice de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!