找出一个二维数组中的鞍点。即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点

找出一个二维数组中的鞍点。即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点,以下是我写的代码,灵活可变 ,二维数组中的值可以手动输入,也可直接更改,看你怎么用了。

//找出一个二维数组中的鞍点。即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点

#include 

int Row(int num, int b[3][4])
{
    int line1 = 0;
    for (int k = 0; k < 3; k++)
    {
        if (b[k][num] < b[line1][num])
        {
            line1 = k;
            // continue;
        }
    }
    return line1;
}

int main()
{
    int a[3][4] = {{4, 6, 5, 4},
                   {8, 7, 1, 9},
                   {3, 14, 11, 12}};
    int line = 0, colunm = 0;
    int flag = 0;

    for (int i = 0; i < 3; i++)
    {
        for (int j = 1; j < 4; j++)
        {
            if (a[i][j] > a[i][colunm])
            {
                line = i;
                colunm = j;
            }
        }

        if (line == (Row(colunm, a)))
        {
            printf("该二维数组的鞍点是:%d\n", a[line][colunm]);
            flag = 1;
        }
    }
    if (flag==0)
    {
        printf("该二维数组没有鞍点\n");
    }
    

    return 0;
}

你可能感兴趣的:(c语言)