首页 > 代码库 > 寻找二维数组的“鞍点”
寻找二维数组的“鞍点”
鞍点:该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 4 4 #define M 5 5 int main() 6 { 7 int i,j,k,maxj,max,a[N][M],flag; 8 printf("input matrix:\n"); 9 for(i=0;i<N;i++){10 for(j=0;j<M;j++){11 scanf("%d",&a[i][j]);12 }13 }14 for(i=0;i<N;i++){15 for(j=0;j<M;j++){16 printf("%5d",a[i][j]);17 }18 printf("\n");19 }20 for(i=0;i<N;i++){21 max=a[i][0];//开始时假设a[i][0]最大22 maxj=0;//将最大数的列号存在maxj中23 for(j=0;j<M;j++){//找出行最大值24 if(a[i][j]>max){25 max=a[i][j];26 maxj=j;//将最大数的列号存在maxj中27 }28 }29 flag=1;//假设为鞍点30 for(k=0;k<N;k++){31 if(max > a[k][maxj]){//将该行最大数与同列元素相比32 flag=0;//如果该数不是同列最小,表示不是鞍点,令flag=0;33 continue;//跳出k的循环34 }35 }36 if(flag){//flag为1表示是鞍点37 printf("a[%d][%d]=%d\n",i,maxj,max);38 break;//跳出i的循环39 }40 }41 if(!flag)42 printf("not exist\n");43 system("pause");44 return 0;45 }
寻找二维数组的“鞍点”
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。