首页 > 代码库 > 判断一个10*10的矩阵是否为单位矩阵

判断一个10*10的矩阵是否为单位矩阵

《C和指针》第8章编程练习第3题:

 1 /* 2 ** 判断一个10*10的矩阵是否为单位矩阵 3 */ 4  5 #include <stdio.h> 6 #define  ROW  10 7 #define  COL  10 8  9 /*10 ** 函数接受一个10*10的矩阵11 ** 判断其是否为单位矩阵12 ** 返回值:13 **      是单位矩阵,返回114 **      不是单位矩阵,返回015 */16 int 17 indentity_matrix( int (*matrix) [10] )18 {19     int row, col;20     for( row = 0; row < ROW; ++ row )21         for( col = 0; col < COL; ++ col )22         {23             // 如果对角线上出现不是1的数,返回024             if( col == row && matrix[row][col] != 1 )25                 return 0;26             // 如果其余位置出现不是0的数,返回027             if( col != row && matrix[row][col] != 0 )28                 return 0;29             /*30             ** 上面两个if语句可合并成以下形式:31             ** if( matrix[ row ][ col ] != ( row == col ) )32             **     return 0;33             */34         }35     36     // 能够执行到这里,说明是单位矩阵,返回137     return 1;38 }39 40 int 41 main()42 {43     int m[ROW][COL];44     int i, j;45     46     for( i = 0; i < ROW; ++ i )47         for( j = 0; j < COL; ++ j )48             scanf( "%d", *( m + i ) + j );49     50     printf( "%d", indentity_matrix( m ) );51     52     return 0;53 }

 

判断一个10*10的矩阵是否为单位矩阵