C语言复习---找出一个二维数组的鞍点
前提:
求任意的一个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; }