前提:
求任意的一个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;
}