1235: 华科版C语言程序设计教程(第二版)习题6.12
时间限制: 1 Sec 内存限制: 128 MB
[ 提交][ 状态][ 讨论版]
Problem Description
输出二维数组中行上为最大,列上为最小的元素(称为鞍点)及其位置(行列下标)。如果不存在任何鞍点,请输出"404 not found"(不带引号)。
输入
首先输入一个t,表示有t组测试数据。
接下来t组测试数据,每组测试数据首先2个数n和m,表示矩阵有n行m列(2<=n,m<= 22)。
接下来给出一个n行m列的数字矩阵,每个元素为一个非负整数。
输出
对于每组测试数据,如果存在鞍点,输出所有的鞍点的值及其行、列下标(如果有多个鞍点,按行号递增顺序输出)。
如果不存在鞍点,输出"404 not found"。具体见sample。
样例输入
2 2 2 1 2 3 4 2 2 1 2 2 1
样例输出
2 1 2 404 not found
#include<stdio.h>
int panduan(int arr[][30],int line,int row,int a,int b)
{
int i,j;
for(i=0;i<line;i++) //列
{
if(arr[a][b]>arr[i][b])
return 0;
}
for(i=0;i<row;i++) //行
{
if(arr[a][b]<arr[a][i])
return 0;
}
return 1;
}
int main()
{
int line,row,n,flag,i,j;
int arr[30][30];
scanf("%d",&n);
while(n--)
{
flag=0;
scanf("%d%d",&line,&row);
for(i=0;i<line;i++)
{
for(j=0;j<row;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<line;i++)
{
for(j=0;j<row;j++)
{
if(panduan(arr,line,row,i,j)==1)
{
flag++;
printf("%d %d %d\n",arr[i][j],i+1,j+1);
}
}
}
if(flag==0)
{
printf("404 not found\n");
}
}
return 0;
}