程序設計入門——C語言 第7周編程練習 2 鞍點(5分)(5分)


2

鞍點(5分)

題目內容:

給定一個n*n矩陣A。矩陣A的鞍點是一個位置(i,j),在該位置上的元素是第i行上的最大數,第j列上的最小數。一個矩陣A也可能沒有鞍點。

你的任務是找出A的鞍點。

 

 

 

輸入格式:

輸入的第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

時間限制:500ms內存限制:32000kb

//
//  main.c
//  c yuyan
//
//  Created by anzhongyin on 2016/11/29.
//  Copyright © 2016年 anzhongyin. All rights reserved.
//

#include <stdio.h>
//#include <math.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    // TODO Auto-generated method stub
    int max=0,maxn[2]={-1,-1};
    int n,c=1;
    int a[100][100]={0};
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
   

    for(int i=0;i<n;i++)
    {
        max=0;
        for(int j=0;j<n;j++)
        {
            if(max<a[i][j])
            {
                max=a[i][j];
                maxn[0]=i;
                maxn[1]=j;
            }
        }
        
        int g=1;
        for(int j=0;j<n;j++)
        {
            
            if (a[j][maxn[1]]<max&&i!=j)
            {
                g=0;
                break;
            }
            
        }
        if(g)
        {
            printf("%d %d\n",maxn[0],maxn[1]);
            c=0;
        }
  
        }
    if(c)
    {
        printf("NO\n");
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM