编写一个程序找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。
#include “stdio.h”
#include “conio.h”
#define M 3
#define N 6
void main()
{
int a[M][N],i,j,max,min,column,rowmin,n=0;
printf(“Input a array of %d by %d: \n”,M,N);
for(i=0;i < M;i++)
for(j=0;j < N;j++)scanf(“%d”,&a[i][j]);
printf(“Saddle number as follow:\n”);
for(i=0;i < M;i++)
{ max=a[i][0]; column=0;
for(j=1;j < N;j++)
if(max < a[i][j])
{/*找到行更大的*/
max=a[i][j]; column=j;
}
min=a[0][column]; rowmin=0;
for(j=1;j < M;j++)
if (min > a[j][column])
{ min=a[j][column];rowmin=j;}
if (max==min&&i==rowmin) {
printf(“Row %d, Column %d:\t%d\n”,i+1, column+1,a[i][column]);
n++;
}
}
if(!n) printf(“No saddle number\n”);
else printf(“There are %d saddle number.\n”,n);
getch();
}
暂无评论内容