C语言函数里数组问题,矩阵
这两道题完全看不出来怎么做呢?谁带我做下呀1.写一个函数void change(int array[],int n),可以将数组array中的n个元素逆序存放。即array[0]与a[n-1]互换,array[1]与array[n-2]互换……。
2.求两个矩阵的乘积c。已知矩阵a、b的值:
程序代码:#include <stdio.h>
#define N 10
void
fun( int ( *a )[ N ], int I );
int
main( void )
{
int a[ N ][ N ];
int i, j, k;
for( i = 0, k = 0; N > i; i++ )
for( j = 0; N > j; j++, k++ )
a[ i ][ j ] = k;
fun( a, N );
for( i = 0; N > i; i++ )
{
for( j = 0; N > j; j++ )
printf( "%2d ",a[ i ][ j ] );
printf( "\n" );
}
return 0;
}
void
fun( int ( *a )[ N ], int I )
{
int i, j;
int temp;
for( i = 0; I > i; i++ )
{
for( j = i + 1; N > j; j++ )
{
temp = a[ i ][ j ];
a[ i ][ j ] = a[ j ][ i ];
a[ j ][ i ] = temp;
}
}
}

程序代码:#include <stdio.h>
void
matrix_multiply( int ( *m1 )[ 2 ], int ( *m2 )[ 4 ], int ( *r )[ 4 ], int x, int y, int z );
int
main( void )
{
int a[ 3 ][ 2 ] = {
{ 2, -6 },
{ 3, 5 },
{ 1, -1 }
};
int b[ 2 ][ 4 ] = {
{ 4, -2, -4, -5},
{ -7, -3, 6, 7 }
};
int c[ 3 ][ 4 ];
int i,j;
matrix_multiply( a, b, c, 3, 2, 4 );
for(i = 0; i < 3; i++ )
{
for( j = 0; j < 4; j++ )
printf("%d ", c[ i ][ j ]);
printf("\n");
}
return 0;
}
void
matrix_multiply( int ( *m1 )[ 2 ], int ( *m2 )[ 4 ], int ( *r )[ 4 ], int x, int y, int z )
{
int a, b, c;
for( a = 0; a < x; a++ )
for( b = 0; b < z; b++ )
r[ a ][ b ] = 0;
for( a = 0; a < x; a++ )
for( b = 0; b < z; b++)
for( c = 0; c < y; c++ )
r[ a ][ b ] += m1[ a ][ c ] * m2[ c ][ b ];
}
