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

  • Post author:
  • Post category:其他

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;

 

}


版权声明:本文为GJE1048原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。