zoukankan      html  css  js  c++  java
  • 找出矩阵的鞍点

    输入格式:

    输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。

    输出格式:

    对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。

    如果找不到,就输出

    NO

    题目所给的数据保证了不会出现多个鞍点。

    输入样例:

    1 7 4 1 

    4 8 3 6 

    1 6 1 2 

    0 7 8 9

    输出样例:

    2 1

    代码:

     1 #include <stdio.h>
     2 
     3 /*
     4 1、 创建给定大小的矩阵
     5 2、 读入输入的数,填充矩阵
     6 3、 找出行中最大的数的下标(x,y) 
     7 4、 找出行最大数的那一列中最小数的 (x1,y)
     8 5、 如果x1=x,那x,y就是我们要找的鞍点,如果不等于就检查下一行,
     9 回到 3,直到所有行检查完。 
    10  
    11 */
    12 int main()
    13 {
    14     int size;
    15     scanf("%d", &size);
    16     int board[size][size];
    17     int i, j, t;
    18     int x, y, x1;
    19     int mark=0;
    20     
    21     // 读入矩阵
    22     for ( i=0; i<size; i++ ){
    23         for ( j=0; j<size; j++ ){
    24             scanf("%d", &board[i][j]);
    25         }
    26     } 
    27     
    28     
    29     for ( i=0; i<size; i++ ) {
    30         for ( j=0, x=i, y=0; j<size; j++ ){    //
    31             if ( board[i][j] > board[x][y] ){ 
    32                 x=i, y=j; 
    33             }
    34         }
    35         for ( x1=0, j=y, t=0; t<size; t++ ){    //
    36             if ( board[t][j] < board[x1][j] ){
    37                 x1=t;
    38             }
    39         }
    40         if ( x==x1 ){     //判断是否是鞍点 
    41             mark=1;
    42             printf("%d %d", x, y);
    43             break;
    44         }
    45     }
    46     if ( mark==0 ){
    47         printf("NO");
    48     }
    49     return 0;
    50 } 
  • 相关阅读:
    YApi 部署记录
    《Go语言网络编程》第一章:体系
    Golang知识图谱
    Docker学习笔记之二:制作镜像并PUSH
    下载m3u8视频
    杂知识
    遗传算法
    评分卡
    小数据玩转Pyspark(2)
    从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)
  • 原文地址:https://www.cnblogs.com/tingshuo123/p/6706289.html
Copyright © 2011-2022 走看看