C++马鞍数马鞍数对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.输入要求:输入文件(

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/25 09:53:21
C++马鞍数马鞍数对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.输入要求:输入文件(

C++马鞍数马鞍数对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.输入要求:输入文件(
C++马鞍数
马鞍数
对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.
输入要求:
输入文件(mas.in)有n+1行,第一行一个整数n,表示n*n数阵.以下n行每行n个数,构成n*n数阵,同一行上每两个数之间用空格隔开.(n

C++马鞍数马鞍数对于一个n*n的数阵(n行n列),如果数阵中某个数在它所在的行上是最小的数,而在它所在的列上是最大的数,则称该数为马鞍数,求给出的数阵中的马鞍数.输入要求:输入文件(
改了下,这个可以AC的
#include<stdio.h>
int main()
{
int n,i,j,k,l,minn,maxx,flag ;
int a[20][20];
scanf("%d",&n);
for( i =0 ;i < n ;i++)
for( j =0 ;j < n; j++)
scanf("%d",&a[i][j]);
flag = 0;
for( i = 0; i < n ;i++)
{
for( j = 0; j < n; j++)
{
minn = a[i][j];
for( k = 0 ;k < n; k++)
{
if( minn > a[i][k])
break;
}
if( k == n)
{
maxx = a[i][j];
for( l = 0; l < n; l++)
{
if( maxx < a[l][j])
break;
}
if( l == n)
{
printf("%d\n%d ",i+1 ,j+1 );
flag = 1;
}
}
}
}
if( flag == 0)
printf("no");
//printf("\n");
return 0;
}