题目:输入一个3X4的矩阵,输出其鞍点。判断鞍点的条件,鞍点位置上的元素在所在的行最大、列最小。矩阵也可以没有鞍点。
解答:

#include<stdio.h>
void main()
{
    int a[3][4]={0},i,j,j1,i1,i2,n;
    for(i=0;i<3;i++)//输入数组
    {
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);
    }
    for(i=0;i<3;i++)//先固定行数
    {
        for(j=1,j1=0,n=1;j<4;j++)//取行里面最小数的列数
        {
            if(a[i][j]>a[i][j1])
            {
                j1=j;
            }
        }
        for(i1=i,i2=0;i2<3;i2++)//进行列判断
        {
            if(a[i2][j1]<a[i1][j1])//判断列里面是否为最小
            {
                n=0;
                break;
            }
        }
        if(n)
        {
            for(i=0;i<3;i++)
            {
                for(j=0;j<4;j++)
                    printf("%5d",a[i][j]);
                printf("\n");
            }
            printf("%d为鞍点%d %d\n",a[i1][j1],i1,j1);
            break;
        }
    }
        if(!n)
            printf("没有鞍点\n");
}