编程求3*3矩阵的乘法:要求随机生成两个3*3矩阵(成员数值范围在-20到100)并打印,并输出其结果。
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
void grmat ( int a[ ] [ 3 ] , int b[ ] [ 3 ] , int mat_size)
{
int i, j;
srand ( time ( NULL ) ) ;
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
a[ i] [ j] = rand ( ) % 121 - 20 ;
}
}
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
b[ i] [ j] = rand ( ) % 121 - 20 ;
}
}
cout<< "a[3][3]矩阵如下:" << endl;
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
cout<< a[ i] [ j] << "\t" ;
}
cout<< endl;
}
cout<< "b[3][3]矩阵如下:" << endl;
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
cout<< b[ i] [ j] << "\t" ;
}
cout<< endl;
}
}
void mat_cheng ( int a[ ] [ 3 ] , int b[ ] [ 3 ] , int c[ ] [ 3 ] , int mat_size)
{
int i, j;
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
c[ i] [ j] = 0 ;
for ( int k= 0 ; k< mat_size; k++ )
{
c[ i] [ j] + = a[ i] [ k] * b[ k] [ j] ;
}
}
}
cout<< "a[3][3]与b[3][3]相乘后得到矩阵c[3][3]如下:" << endl;
for ( i= 0 ; i< mat_size; i++ )
{
for ( j= 0 ; j< mat_size; j++ )
{
cout<< c[ i] [ j] << "\t" ;
}
cout<< endl;
}
}
int main ( )
{
int a[ 3 ] [ 3 ] , b[ 3 ] [ 3 ] , c[ 3 ] [ 3 ] ;
int mat_size = 3 ;
grmat ( a, b, mat_size) ;
mat_cheng ( a, b, c, mat_size) ;
return 0 ;
}