C語言程序,找出一個二維數組的鞍點。


什么是鞍點?????

鞍點就是在一個二維數組中,某一個數在該行中最大,然而其在該列中又是最小的數,這樣的數稱為鞍點。

昨天突然在書上看到這樣的一道題,就自己嘗試着寫了一個找出一個二維數組中的鞍點。

好了,廢話不多說,代碼奉上。。。。。。。。。。。。

 1 /*這個程序檢測的是一個二維數組中是否存在鞍點,
 2 所謂的鞍點即是在這個二維數組中,某一個位置上的
 3 元素在該行上最大,該列上最小*/
 4 #include<stdio.h>
 5 #define M 3
 6 #define N 3    //定義行和列的大小
 7 
 8 int main()
 9 {
10     int a[M][N];
11     int i, j;
12     int temp = 1, temp1[M], temp2[N];
13     printf("請根據提示輸入二維數組。\n");
14     //輸入數組
15     for (i = 0;i<M;i++)
16         for (j = 0;j < N;j++)
17         {
18             printf("a[%d][%d]=", i, j);
19             scanf_s("%d", &a[i][j]);
20         }
21     //輸出數組
22     for (i = 0;i < M;i++)
23     {
24         for (j = 0;j < N;j++)
25             printf("%d\t", a[i][j]);
26         printf("\n");
27     }
28     //處理數組
29     for (i = 0;i < M;i++)
30     {
31         temp1[i] = a[i][0];    //給每行的最大值賦一個初始值
32         temp2[i] = a[0][i];    //給每列的最小值賦一個初始值
33         for (j = 0;j < N;j++)
34         {
35             if (temp1[i] < a[i][j])    temp1[i] = a[i][j];
36             if (temp2[i] > a[j][i])    temp2[i] = a[j][i];
37         }
38     }
39     for (i = 0;i < M;i++)
40     {
41         for (j = 0;j < N;j++)
42         {
43             if (a[i][j] == temp1[i] && a[i][j] == temp2[j])
44                 printf("這個二維數組的鞍點為%d\n", a[i][j]);
45             else
46                 temp = 0;
47 
48         }
49     }
50     if (temp == 0)
51         printf("這個數組中沒有鞍點.\n");
52 }

還是一樣的話,弄上本代碼是為了和大家一起交流學習。

歡迎大家的討論和提問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM