1235: 华科版C语言程序设计教程(第二版)习题6.12

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;
}  
相关文章
相关标签/搜索