美文网首页
C语言找矩阵中的鞍点

C语言找矩阵中的鞍点

作者: David_Rao | 来源:发表于2019-12-19 08:31 被阅读0次
    找矩阵中的鞍点
    
    Description
    由键盘输入一个3*4(3行4列)的矩阵,输出矩阵中的鞍点(即在矩阵行中最大,列中最小的数)。
    若没有鞍点,输出“NO”字样。
    
    
    输入样例
    87  90  110  98
    70  97  210  65
    98  45  120  30
    
    
    输出样例
    110
    
    #include <stdio.h>
    #include <stdlib.h>
    #define ROW 3
    #define COL 4
    
    int main()
    {
        int matrix[ROW][COL];
        int i, j, k, rowMax, rowMaxColIndex, haveAnswer=0;
        for(i=0;i<ROW;i++){
            for(j=0;j<COL;j++){
                scanf("%d", &matrix[i][j]);
            }
        }
        for(i=0;i<ROW;i++){ //遍历每行
            rowMax = matrix[i][0];
            rowMaxColIndex = 0; //将当前行的第一个元素作为擂主
            for(j=1;j<COL;j++){
                if(matrix[i][j] > rowMax){
                    rowMax = matrix[i][j];
                    rowMaxColIndex = j; //找到当前行最大值
                }
            }
            for(k=0;k<ROW;k++){ //遍历对应列的每一行
                //但凡列中出现比它小的,即它不是列中最小的,退出循环
                if(matrix[k][rowMaxColIndex] < rowMax) break;
            }
            //如果遍历到最后的没有退出循环,即它是鞍点
            if(k==ROW){haveAnswer=1; printf("%d\n", matrix[i][rowMaxColIndex]);}
        }
        if(!haveAnswer) printf("NO");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:C语言找矩阵中的鞍点

          本文链接:https://www.haomeiwen.com/subject/oiopnctx.html