V:计算鞍点

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。
鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。
例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25

输入
输入包含一个5行5列的矩阵
输出
如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"
样例输入
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8  6 4 7 2
15 10 11 20 25
样例输出
4 1 8
 1 #include <iostream>
 2 using namespace std;
 3 void Andian(int a[][5], int m, int n)
 4 {
 5     int flag = 0;
 6     for (int i=0;i<n;++i)
 7     {
 8         int d =a[i][0],k=0;
 9         for (int j=1;j<m;++j)
10         {
11             if (a[i][j]>d)
12             {
13                 d = a[i][j];
14                 k = j;
15             }//a[i][k]为i行最大值
16             
17         }
18         int j;
19         for (j=0;j<n;++j)
20         {
21             if (a[j][k]<d)
22             {
23                 break;
24             }
25             
26         }
27         if (j == n)
28         {
29             cout << i+1 << " " << k+1 << " " << a[i][k];
30             flag = 1;
31         }
32         
33     }
34     if (!flag)
35     {
36         cout << "not found";
37     }
38 }
39 int main()
40 {
41     int a[5][5];
42     for (int i=0;i<5;++i)
43     {
44         for (int j=0;j<5;++j)
45         {
46             cin >> a[i][j];
47         }
48     }
49     Andian(a, 5, 5);
50     return 0;
51 }

 

posted @ 2020-12-13 22:56  丁帅帅dss  阅读(772)  评论(0)    收藏  举报