[求助]鞍点问题
找出二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
==
[此贴子已经被作者于2006-12-22 23:58:47编辑过]
#include<sdio.h>
#define N 10
main()
{int a[N][N],n,m,i,j,max,maxj,flag1,flag2;
char ch;
printf("Enter:n");
scanf("%d",&n);
printf("Enter:m");
scanf("%d",&m);
printf("Please input an array:\n")
for(i=0;i<ni++)
for(j=0;j<m;j++)
{printf("a[%d][%d]:",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{max=a[i][0];
for(j=0;j<m;j++)
if(max<a[i][j]) {max=a[i][j];maxj=j;}
for(j=0,flag1=1;j<n&&flag;j++)
if(max>a[j]maxj] flag1=0;
if(flag1)
{printf("Row%d,%d %6d",i,maxj,max);
flag2=1;
}
}
printf("\n");
if(!flag2)
{printf("No saddle!\nPress any key to quit...");
ch=getchar();
exit(0);
}
}
看看这个
#include <stdio.h>
void main()
{
int a[3][3]={{5,2,3},{2,1,1},{4,0,2}},i,j,h,max,k,f,l=0;
for(i=0;i<3;i++)
{
max=a[i][0];f=0;k=0;
for(j=1;j<3;j++)
if(max<a[i][j])
{
max=a[i][j];
k=j;
}
for(j=0;j<3;j++)
if(max>a[j][k])
{
f=1;
break;
}
if(f==0)
{
printf(\"第%d行第%d列:%d \n\",i+1,k+1,max);
l++;
f=0;
}
}
if(l==0)
printf(\"没有\");
}