码迷,mamicode.com
首页 > 编程语言 > 详细

寻找二维数组的“鞍点”

时间:2016-09-30 15:01:22      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

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

 技术分享   技术分享

 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 }

 

寻找二维数组的“鞍点”

标签:

原文地址:http://www.cnblogs.com/crystalmoore/p/5923323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!