前提:
求任意的一個m×n矩陣的鞍點——鞍點是指該位置上的元素在該行上為最大、在該列上為最小, 矩陣中可能沒有鞍點,但最多只有一個鞍點。 m、n(2<=m<=20、2<=n<=20)及矩陣元素從鍵盤輸入(只考慮int型和每行、每列中沒有並列最大/最小的情況)。
算法實現:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAXSIZE 6 int main() { int n, i, j, k, temp; int row, col; int max, min; int flag = 0; int a[MAXSIZE][MAXSIZE] = { 0 }; while (1) { printf("input row,col for array(row,col):"); scanf("(%d,%d)", &row, &col); if (row > 0 && col > 0) break; } for (i = 0; i < row;i++) for (j = 0; j < col; j++) scanf("%d", &a[i][j]); for (i = 0; i < row;i++) { max = 0; for (j = 1; j < col;j++) { if (a[i][j]>a[i][max]) max = j; } for (k = 0; k < row;k++) if (a[k][max] < a[i][max]) { flag = 1; break;; } if (flag == 0) { printf("%d %d-->%d", i, max, a[i][max]); } flag = 0; } system("pause"); return 0; }