C语言 | 找出一个二维数组中(1<=N<=6)的鞍点二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。分析:一个有N行M列的二维数组,会有N个行

C语言 | 找出一个二维数组中的鞍点二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。分析:一个有N行M列的二维数组,会有N个行的最大元素,M个列的最小元素,当行的最大(1<=N<=6)

#include<stdio.h>

#define N 6

int main(){

    int a[N][N];

    int temp[N];//存放比较得到的较大的数

    int temp1[N];

    int i,j,k,n,count=0;

    printf("Input the n(1-6): ");

   scanf("%d",&n);

   printf("Input the square:  ");

   for(i=0;i<n;i++){

    for(j=0;j<n;j++){

        scanf("%d",&a[i][j]);

    }

   }

    for(i=0;i<n;i++){

        for(j=0;j<n;j++){

            printf("%d\t",a[i][j]);

            if((j+1)%n==0)printf("\n");

        }

    }/*打印出该二维数组表*/

    /*判断每一行的最大值*/

    for(i=0;i<n;i++){  /*i行不变,先变列*/

        temp[i]=a[i][0];

        for(j=0;j<n;j++){

            if(temp[i]<a[i][j])temp[i]=a[i][j];

        }

    }

    for(i=0;i<n;i++){   /*判断列的最小值*/

        temp1[i]=a[0][i];

        for(j=0;j<n;j++){

            if(temp1[i]>a[j][i])temp1[i]=a[j][i];

        }

    }

    /*判断是否有鞍点*/

    for(i=0;i<n;i++){

        for(j=0;j<n;j++){

            if(temp[i]==temp1[j]){ //*第i行的元素与第j列的元素相同,代表同一个数

                printf("The point is %d",a[i][j]);

                count=1;

            }

        }

    }

    if(count==0)printf("No!");

    return 0;



 

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值