C语言复习---找出一个二维数组的鞍点

前提:

求任意的一个m×n矩阵的鞍点——鞍点是指该位置上的元素在该行上为最大、在该列上为最小,
矩阵中可能没有鞍点,但最多只有一个鞍点。
m、n(2<=m<=202<=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;
}

 

posted @ 2018-08-30 09:37  山上有风景  阅读(3421)  评论(0编辑  收藏  举报