注册 登录
编程论坛 C++教室

求简单方法。。

zuoxi 发布于 2012-06-23 16:40, 382 次点击
找一个二维数组中的鞍点,即该位置上的元素在该行中最大,在该列中最小。我是初学者,求简单方法。
#include<stdio.h>
main()  

{int a[5][5],b[5],c[5],d[5][5],k=0,l=0;int i,j;  

for(i=0;i<5;i++)  

for(j=0;j<5;j++)  

scanf("%d",&d[i][j]);  

for(i=0;i<5;i++)  

for(j=0;j<5;j++,a[i][j]=d[i][j]);  

for(i=0,k=0;i<5;i++,k++)  

for(j=0;j<4;j++)  

{if(a[i][j]>=a[i][j+1])  

 b[k]=a[i][j+1]=a[i][j];  

else   

b[k]=a[i][j+1];  

}  

for(j=0,l=0;j<5;j++,l++)  

for(i=0;i<4;i++)  

{if(a[i][j]<=a[i+1][j])  

c[l]=a[i+1][j]=a[i][j];  

else   

c[l]=a[i+1][j];  

}  

for(i=0,k=0;i<5;i++,k++)  

for(j=0,l=0;j<5;j++,l++)  

if(d[i][j]-b[k]==0)  

{if(d[i][j]-c[l]==0)  

 printf("d[%d][%d]=%d\n",i,j,d[i][j]);  

else  

printf("d[%d][%d]=%d isnot andi\n",i,j,d[i][j]);  

}  
}
0 回复
1