产生一个M行N列的整型数组(数据是100以内的随机整数,M、N的整型数组(数据是100以内的随机整数,M、N最大为10),求出这个数组的“鞍点”。鞍点是指这个元素在所处的行上最大,列上最小。请输出这个鞍点的位置(行列号)及鞍点的值。如果没有鞍点,输出不存在的的信息。
供参考:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 10
#define N 10
int main()
{
char a[M][N]={{2,2,6,3},{2,4,5,3},{5,1,7,2}};
int i,j,k,m=0,n=0,max=0,min=0,flg=0;
srand((unsigned int)time(NULL));
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
a[i][j] = rand()%100;
printf("%-4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++)
{
max = a[i][0];
for(j=0;j<4;j++)
{
if(a[i][j]>max)
{
n = j;
max=a[i][j];
}
}
min = a[0][n];
for(k=0;k<3;k++)
{
if(a[k][n]<min)
{
m = k;
min=a[k][n];
}
}
if(max==min)
{
printf("鞍点是%d,所在行为%d,所在列为%d\n",a[m][n],m,n);
flg = 1;
}
}
if(!flg)
printf("无鞍点\n");
return 0;
}