计算鞍点
作者:互联网
描述:
给定一个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
算法:
找出每行最大的,再从最大的里面找出最小的。
#include <stdio.h> #define N 5 int main() { int c[N][N]; int n,a[N]; int rowmax[N],colmin; int i,j; scanf("%d", &n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&c[i][j]); } } rowmax[0] = c[0][0]; colmin = rowmax[0]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(c[i][j] >= rowmax[i]) { rowmax[i] = c[i][j]; if(rowmax[i] <= colmin) { colmin = rowmax[i]; a[0] = i; a[1] = j; } } } } printf("%d %d %d", a[0]+1,a[1]+1,colmin); return 0; }
标签:11,10,int,矩阵,rowmax,计算,鞍点 来源: https://blog.csdn.net/zxdspaopao/article/details/90242787