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;
}

 


免責聲明!

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



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