// Let's print out matrix one and matrix 2.
// Multiplication My Version
#include <iostream>
using namespace std;
void print_matrix( int M[ 10 ] [ 10 ] , int m, int n)
/**
Print out a square matrix of size s, max size 10.
*/
{
for ( int i = 0 ; i < m; ++ i)
{
for ( int j = 0 ; j < n; ++ j)
{
cout << M[ i] [ j] << "\t " ;
}
cout << endl;
}
}
int main( )
{
int m, n, c, d, o, p, first[ 10 ] [ 10 ] , second[ 10 ] [ 10 ] , mult[ 10 ] [ 10 ] ;
cout << "Enter the number of rows and columns of matrix 1 " ;
cin >> m >> n;
cout << "Enter the number of rows and columns of matrix 2 " ;
cin >> o >> p;
cout << "Enter the elements of first matrix\n " ;
for ( c = 0 ; c < m ; c++ )
{
for ( d = 0 ; d < n ; d++ )
{
cin >> first[ c] [ d] ;
}
}
cout << "Enter the elements of second matrix\n " ;
for ( c = 0 ; c < o ; c++ )
{
for ( d = 0 ; d < p ; d++ )
{
cin >> second[ c] [ d] ;
}
}
cout << "First Matrix:" << endl;
print_matrix( first, m, n) ;
cout << endl << "Second Matrix:" << endl;
print_matrix( second, o, p) ;
//mult
if ( n== o)
{
for ( c = 0 ; c < m ; c++ )
{
for ( d = 0 ; d < p ; d++ )
{
mult[ c] [ d] = 0 ;
for ( int k= 0 ; k< n; k++ )
{
mult[ c] [ d] + = first[ c] [ k] * second[ k] [ d] ;
}
}
}
}
else {
cout << "Multiplication not possible" ;
}
cout << "Product of entered matrices:-\n " ;
print_matrix( mult, m, o) ;
return 0 ;
}
Ly8gTGV0J3MgcHJpbnQgb3V0IG1hdHJpeCBvbmUgYW5kIG1hdHJpeCAyLgoKLy8gTXVsdGlwbGljYXRpb24gTXkgVmVyc2lvbgojaW5jbHVkZSA8aW9zdHJlYW0+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcHJpbnRfbWF0cml4KGludCBNWzEwXVsxMF0sIGludCBtLCBpbnQgbikKLyoqCiBQcmludCBvdXQgYSBzcXVhcmUgbWF0cml4IG9mIHNpemUgcywgbWF4IHNpemUgMTAuCiAqLwp7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgKytpKQogICB7CiAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgKytqKSAKICAgICAgewogICAgICAgICBjb3V0IDw8IE1baV1bal0gPDwgIlx0IjsKICAgICAgfQogICAgICBjb3V0IDw8IGVuZGw7CiAgIH0KfQoKaW50IG1haW4oKQp7CiAgIGludCBtLCBuLCBjLCBkLCBvLCBwLCBmaXJzdFsxMF1bMTBdLCBzZWNvbmRbMTBdWzEwXSwgbXVsdFsxMF1bMTBdOwogCiAgIGNvdXQgPDwgIkVudGVyIHRoZSBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBvZiBtYXRyaXggMSAiOwogICBjaW4gPj4gbSA+PiBuOwogICBjb3V0IDw8ICJFbnRlciB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMgb2YgbWF0cml4IDIgIjsKICAgY2luID4+IG8gPj4gcDsKICAgCiAgIGNvdXQgPDwgIkVudGVyIHRoZSBlbGVtZW50cyBvZiBmaXJzdCBtYXRyaXhcbiI7CiAKICAgZm9yICggIGMgPSAwIDsgYyA8IG0gOyBjKysgKSAKICAgewogICAgICBmb3IgKCBkID0gMCA7IGQgPCBuIDsgZCsrICkgCiAgICAgIHsKICAgICAgICAgY2luID4+IGZpcnN0W2NdW2RdOwogICAgICB9CiAgIH0KIAogICBjb3V0IDw8ICJFbnRlciB0aGUgZWxlbWVudHMgb2Ygc2Vjb25kIG1hdHJpeFxuIjsKIAogICBmb3IgKCBjID0gMCA7IGMgPCBvIDtjKysgKSAKICAgewogICAgICBmb3IgKCBkID0gMCA7IGQgPCBwIDsgZCsrICkgCiAgICAgIHsKICAgICAgICAgICAgY2luID4+IHNlY29uZFtjXVtkXTsKICAgICAgfQogICAgfQogICAgY291dCA8PCAiRmlyc3QgTWF0cml4OiIgPDwgZW5kbDsKICAgIHByaW50X21hdHJpeChmaXJzdCwgbSwgbik7CiAgICBjb3V0IDw8IGVuZGwgPDwgIlNlY29uZCBNYXRyaXg6IiA8PCBlbmRsOwogICAgcHJpbnRfbWF0cml4KHNlY29uZCwgbywgcCk7CiAgIC8vbXVsdAogICBpZihuPT1vKQogICB7CiAKICAgICAgIGZvciAoIGMgPSAwIDsgYyA8IG0gOyBjKysgKQogICAgICAgewogICAgIAogICAgICAgICAgZm9yICggZCA9IDAgOyBkIDwgcCA7IGQrKyApCiAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtdWx0W2NdW2RdPTA7CiAgICAgICAgICAKICAgICAgICAgICAgICBmb3IoaW50IGs9MDtrPG47aysrKQogICAgICAgICAgICAgIHsKICAgICAgICAgCiAgICAgICAgICAgICAgIG11bHRbY11bZF0gKz0gZmlyc3RbY11ba10gKiBzZWNvbmRba11bZF07CiAgICAgICAgICAgICAgfSAKICAgICAgICAgICB9CiAgICAgICB9CiAgICB9CiAgIGVsc2UgewogICAgICAgY291dDw8Ik11bHRpcGxpY2F0aW9uIG5vdCBwb3NzaWJsZSI7CiAgIH0KICAgY291dCA8PCAiUHJvZHVjdCBvZiBlbnRlcmVkIG1hdHJpY2VzOi1cbiI7CiAKICAgcHJpbnRfbWF0cml4KG11bHQsIG0sIG8pOwoKICAgcmV0dXJuIDA7Cn0=