寻找二维数组的“鞍点”

Posted 米琪儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找二维数组的“鞍点”相关的知识,希望对你有一定的参考价值。

鞍点:该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。

    

 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 }

 

以上是关于寻找二维数组的“鞍点”的主要内容,如果未能解决你的问题,请参考以下文章

算法与数据结构二维数组中寻找鞍点

c语言查找二维数组的鞍点 新生求助大佬

C语言编程题,找鞍点

c语言 求二维数组的鞍点

C语言的鞍点怎么求

二维数组找鞍点