《C和指针》第8章编程练习第4题:
修改前一个问题中的 identity_matrix 函数,它可以对数组进行扩展,从而能够接受任意大小的矩阵参数。函数的第1个参数应该是一个整型指针,你需要第2个参数,用于指定矩阵的大小。
1 /* 2 ** 判断一个矩阵是否为单位矩阵 3 ** 矩阵为任意大小 4 */ 5 6 #include <stdio.h> 7 #define SIZE 4 8 9 /* 10 ** 函数接受任意大小矩阵参数,判断它是否为单位矩阵 11 ** 形参: 12 ** 第1个参数为一个整型指针,指向矩阵中第一个元素&matric[0][0] 13 ** 第2个参数为矩阵的大小 14 ** 返回: 15 ** 是单位矩阵,返回1 16 ** 不是单位矩阵,返回0 17 */ 18 int 19 indentity_matrix_anysize( int *matrix, int mtx_size ) 20 { 21 int row, col; 22 for( row = 0; row < mtx_size; ++ row ) 23 for( col = 0; col < mtx_size; ++ col ) 24 { 25 if( row == col && *( matrix + row * mtx_size + col ) != 1 ) 26 return 0; 27 if( row != col && *( matrix + row * mtx_size + col ) != 0 ) 28 return 0; 29 } 30 return 1; 31 } 32 33 int 34 main() 35 { 36 int matrix[SIZE][SIZE]; 37 38 int i, j; 39 for( i = 0; i < SIZE; ++ i ) 40 for( j = 0; j < SIZE; ++ j ) 41 scanf( "%d", & matrix[i][j] ); 42 43 printf( "%d", indentity_matrix_anysize( matrix[0], SIZE ) ); 44 45 return 0; 46 }
时间: 2024-10-14 06:38:37