#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<math.h>
using namespace std;
const int N = 32 ;
void initstaticmatrixA( double MatA[ ] [ N] , int n ) //initialize matrix A
{ // regular indexing with 2 indices
for ( int i= 0 ; i< n* n; i++ )
MatA[ i/ n] [ i% n] = i;
}
void initstaticmatrixB( double MatB[ ] [ N] , int n ) //initialize matrix B
{ // regular indexing with 2 indices
for ( int i= 0 ; i< n* n; i++ )
MatB[ i/ n] [ i% n] = i;
}
void showMats( double MatA[ ] [ N] , double MatB[ ] [ N] ,int n) //display matrices A & B
{
int c;
cout << "Matrix A: Matrix B:" << endl;
cout << "------------ ------------" << endl;
cout << endl; //regular indexing
for ( int r= 0 ; r< n; r++ , cout << endl)
{
for ( c= 0 ; c< n; c++ )
cout << setw( 4 ) << MatA[ r] [ c] ;
cout << " " ;
for ( c= 0 ; c< n; c++ )
cout << setw( 4 ) << MatB[ r] [ c] ;
}
}
void CalculateMatC( double MatA[ ] [ N] , double MatB[ ] [ N] , int n) //calculate the product C=A*B
{
int m= n;
double MatC[ N] [ N] ;
int i, j, k;
for ( i= 0 ; i< n; i++ )
for ( j= 0 ; j< n; j++ )
for ( MatC[ i] [ j] = k= 0 ; k< n; k++ )
MatC[ i] [ j] + = MatA[ i] [ k] * MatB[ k] [ j] ;
showMatC( MatC, m) ; //Where the problem is!!!!
}
void showMatC( double MatC[ ] [ N] , int n) //show matrix C
{
int c;
cout << "Matrix C:" << endl;
cout << "------------" << endl;
cout << endl; //regular indexing
for ( int r= 0 ; r< n; r++ , cout << endl)
for ( c= 0 ; c< n; c++ )
cout << setw( 4 ) << MatC[ r] [ c] ;
}
int main( )
{
const int n= 2 ;
double MatA[ N] [ N] , MatB[ N] [ N] ; //single
initstaticmatrixA( MatA, n) ;
initstaticmatrixB( MatB, n) ;
showMats( MatA,MatB, n) ;
CalculateMatC( MatA, MatB, n) ;
cout << endl<< endl;
system ( "pause" ) ;
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGxpYi5oPgojaW5jbHVkZTxpb21hbmlwPgojaW5jbHVkZTxtYXRoLmg+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpjb25zdCBpbnQgTiA9MzI7CgoKCnZvaWQgaW5pdHN0YXRpY21hdHJpeEEoIGRvdWJsZSBNYXRBW11bTl0sIGludCBuICkgIC8vaW5pdGlhbGl6ZSBtYXRyaXggQQp7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZ3VsYXIgaW5kZXhpbmcgd2l0aCAyIGluZGljZXMKICBmb3IoaW50IGk9MDsgaTxuKm47IGkrKykgCgogICAgIE1hdEFbaS9uXVtpJW5dPWk7Cn0KCnZvaWQgaW5pdHN0YXRpY21hdHJpeEIoIGRvdWJsZSBNYXRCW11bTl0sIGludCBuICkgIC8vaW5pdGlhbGl6ZSBtYXRyaXggQgp7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVndWxhciBpbmRleGluZyB3aXRoIDIgaW5kaWNlcwogIGZvcihpbnQgaT0wOyBpPG4qbjsgaSsrKSAKCiAgICAgIE1hdEJbaS9uXVtpJW5dPWk7Cn0KCnZvaWQgc2hvd01hdHMoZG91YmxlIE1hdEFbXVtOXSwgZG91YmxlIE1hdEJbXVtOXSxpbnQgbikgIC8vZGlzcGxheSBtYXRyaWNlcyBBICYgQgp7CiAgaW50IGM7CiAgY291dDw8Ik1hdHJpeCBBOiAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0cml4IEI6Ijw8ZW5kbDsKICBjb3V0PDwiLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0iPDxlbmRsOwogIGNvdXQ8PGVuZGw7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vcmVndWxhciBpbmRleGluZwogIGZvcihpbnQgcj0wOyByPG47IHIrKywgY291dDw8ZW5kbCkKICAgIHsKICAgICBmb3IoIGM9MDtjPG47YysrKQogICAgICAgY291dDw8c2V0dyg0KTw8TWF0QVtyXVtjXTsKICAgICAgIGNvdXQ8PCIgICAgICAgICAgICAgICAgIjsKICAgICBmb3IoIGM9MDtjPG47YysrKSAgCiAgICAgICBjb3V0PDxzZXR3KDQpPDxNYXRCW3JdW2NdOwogICAgfQoKfQoKdm9pZCBDYWxjdWxhdGVNYXRDKGRvdWJsZSBNYXRBW11bTl0sIGRvdWJsZSBNYXRCW11bTl0sIGludCBuKSAgLy9jYWxjdWxhdGUgdGhlIHByb2R1Y3QgICAgIEM9QSpCCnsKICAgaW50IG09bjsKICAgZG91YmxlIE1hdENbTl1bTl07CiAgIGludCBpLCBqLCBrOyAKICAgZm9yKGk9MDsgaTxuOyBpKyspCiAgICAgZm9yKGo9MDsgajxuOyBqKyspCiAgICAgICBmb3IoTWF0Q1tpXVtqXT1rPTA7IGs8bjsgaysrKQogICAgICAgICBNYXRDW2ldW2pdICs9IE1hdEFbaV1ba10qTWF0QltrXVtqXTsgCiAgIHNob3dNYXRDKE1hdEMsIG0pOyAgICAgLy9XaGVyZSB0aGUgcHJvYmxlbSBpcyEhISEKfQoKdm9pZCBzaG93TWF0Qyhkb3VibGUgTWF0Q1tdW05dLCBpbnQgbikgIC8vc2hvdyBtYXRyaXggQwp7CiAgaW50IGM7CiAgY291dDw8Ik1hdHJpeCBDOiI8PGVuZGw7CiAgY291dDw8Ii0tLS0tLS0tLS0tLSI8PGVuZGw7CiAgY291dDw8ZW5kbDsgICAgICAgICAgICAgICAgICAgICAgICAgLy9yZWd1bGFyIGluZGV4aW5nCiAgZm9yKGludCByPTA7IHI8bjsgcisrLCBjb3V0PDxlbmRsKQoKICAgZm9yKCBjPTA7YzxuO2MrKykKICAgICBjb3V0PDxzZXR3KDQpPDxNYXRDW3JdW2NdOwp9CgppbnQgbWFpbigpCnsKICBjb25zdCBpbnQgbj0yOwogIGRvdWJsZSBNYXRBW05dW05dLCBNYXRCW05dW05dOyAgLy9zaW5nbGUKICBpbml0c3RhdGljbWF0cml4QShNYXRBLCBuKTsKICBpbml0c3RhdGljbWF0cml4QihNYXRCLCBuKTsKICBzaG93TWF0cyhNYXRBLE1hdEIsIG4pOwogIENhbGN1bGF0ZU1hdEMoIE1hdEEsIE1hdEIsIG4pOwogIGNvdXQ8PGVuZGw8PGVuZGw7CgogIHN5c3RlbSgicGF1c2UiKTsKCiAgcmV0dXJuIDA7Cn0=
compilation info
prog.cpp: In function ‘void CalculateMatC(double (*)[32], double (*)[32], int)’:
prog.cpp:54:20: error: ‘showMatC’ was not declared in this scope
showMatC(MatC, m); //Where the problem is!!!!
^
stdout