一个矩阵中的鞍点,鞍点就是在行上最小,在列上最大的元素
这个问题主要还是枚举所有的数字,首先确定任意一行i(0<=i<=n-1行),然后确定列号(也就是说在这一行中它是最小元素的列号)。
示例代码:
        minj=0;
        for(j=1;j<n;j++)
        {
            if(t>array[i][j])  //找到在固定行号i下最小数据的列号。
            {
                t=array[i][j];
                minj=j;
            }
        }
确定了列号minj后,但它不一定是这个列的最大的元素,所以还要检查是否符合鞍点的条件。
示例代码:
        for(k=0;k<n;k++)
        {
            if(t<array[k][minj]) //检查这个最小的行号是否在【0:n-1】 列里面是最大的!
            {
                break;      //不是的话就退出循环。
            }
        }
        if(k<n)
        {
            continue;     //继续找其他的满足条件的元素!
        }
然后在外面嵌套一个大的循环即可以求出所以的鞍点!完整代码如下:

 1 /*
 2   Name: 求矩阵鞍点
 3   Copyright: CopyLeft
 4   Author: Lonelytree
 5   Date: 21-09-08 18:55
 6   Description: 求一个矩阵中的鞍点,鞍点就是在行上最小,在列上最大的元素!
 7 */
 8 
 9 #include<stdio.h>
10 void readmtr(int array[][10],int num); // num*num
11 
12 int main()
13 {
14     int array[10][10];
15     int i,j,k,minj,t;
16     int n,flag;
17     n=10,flag=0;
18     readmtr(array,n);     //向数组中读入数据
19     /*printfmtr(array,n);*/  //打印数组中的数据
20     for(i=0;i<n;i++)
21     {
22         t=array[i][0];
23         minj=0;
24         for(j=1;j<n;j++)
25         {
26             if(t>array[i][j])  //找到在固定行号i下最小数据的列号。
27             {
28                 t=array[i][j];
29                 minj=j;
30             }
31         }
32         for(k=0;k<n;k++)
33         {
34             if(t<array[k][minj]) //检查这个最小的行号是否在【0:n-1】 列里面是最大的!
35             {
36                 break;      //不是的话就退出循环。
37             }
38         }
39         if(k<n)
40         {
41             continue;     //继续找其他的满足条件的元素!
42         }
43         printf("array[%d][%d]=%d\n",i,minj,array[i][minj]);
44         flag=1;
45     }
46     if(flag==0)
47     {
48         printf("No solutinue!\n");
49     }
50     system("PAUSE");
51     return 0;
52 }
53 
54 void readmtr(int array[][10],int num)  // num*num
55 {
56     int i,j;
57     for(i=0;i<num;i++)
58     {
59         for(j=0;j<num;j++)
60         {
61             scanf("%d",&array[i][j]);
62         }
63     }
64 }
65 
66 
67 
68 
69