前提:
求任意的一个m×n矩阵的鞍点——鞍点是指该位置上的元素在该行上为最大、在该列上为最小,
矩阵中可能没有鞍点,但最多只有一个鞍点。
m、n(2<=m<=
20、
2<=n<=
20)及矩阵元素从键盘输入(只考虑int型和每行、每列中没有并列最大/最小的情况)。
算法实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAXSIZE 6
int main()
{
int n, i, j, k, temp;
int row, col;
int max, min;
int flag =
0;
int a[MAXSIZE][MAXSIZE] = {
0 };
while (
1)
{
printf("input row,col for array(row,col):");
scanf("(%d,%d)", &row, &
col);
if (row >
0 && col >
0)
break;
}
for (i =
0; i < row;i++
)
for (j =
0; j < col; j++
)
scanf("%d", &
a[i][j]);
for (i =
0; i < row;i++
)
{
max =
0;
for (j =
1; j < col;j++
)
{
if (a[i][j]>
a[i][max])
max =
j;
}
for (k =
0; k < row;k++
)
if (a[k][max] <
a[i][max])
{
flag =
1;
break;;
}
if (flag ==
0)
{
printf("%d %d-->%d", i, max, a[i][max]);
}
flag =
0;
}
system("pause");
return 0;
}
转载于:https://www.cnblogs.com/ssyfj/p/9558270.html
相关资源:用C语言求二维数组鞍点