首页 > 代码库 > 判断一个任意大小的矩阵是否为单位矩阵

判断一个任意大小的矩阵是否为单位矩阵

《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 **      是单位矩阵,返回116 **      不是单位矩阵,返回017 */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 int34 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 }

 

判断一个任意大小的矩阵是否为单位矩阵