什麼是鞍點?????數組
鞍點就是在一個二維數組中,某一個數在該行中最大,然而其在該列中又是最小的數,這樣的數稱爲鞍點。
學習
昨天忽然在書上看到這樣的一道題,就本身嘗試着寫了一個找出一個二維數組中的鞍點。spa
好了,廢話很少說,代碼奉上。。。。。。。。。。。。code
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 }
仍是同樣的話,弄上本代碼是爲了和你們一塊兒交流學習。blog
歡迎你們的討論和提問。io