一個矩陣中的鞍點,鞍點就是在行上最小,在列上最大的元素
這個問題主要還是枚舉所有的數字,首先確定任意一行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