每行每列求最大值

来源:百度知道 编辑:UC知道 时间:2024/07/02 15:31:20
题目描述

有一个二维方阵,其尺寸,以及元素的值由用户从键盘输入,元素值保证均为正数。随后用户不停的进行各种查询。命令1代表对某一行求最大值,随后给出行号;命令2代表对某一列求最大值,随后给出列号;命令3代表对从左上到右下的主对角线求最大值;命令4代表对从右上到左下的次对角线求最大值;命令0代表结束。每次用户查询后都立刻在屏幕打印结果,注意所给行号列号从0开始编号,一定合法。

输入

输入只有一组数据。
首先输入一个数n,代表这是一个n*n的方阵。注意n最大不超过20。
然后输入n行,每行有n个数,为方阵中各元素的值,保证为正数。
随后按照题目描述给出各种查询命令,命令保证合法。

输出

针对每个查询命令,输出一行,即对应的最大值。

样例输入

5
25 75 62 84 12
10 9 8 7 6
11 14 15 13 12
18 20 16 17 9
24 22 21 25 11
1 0
2 4
3
4
0

样例输出

84
12
25
24

/*二维数组每行求大小,输入数组元素用空格隔开*/
#include"stdio.h"
main()
{
int a[20][20],i=0,max=0,n,j;
printf("input n :\n");
scanf("%d",&n);
printf("shu ru shu zu yuan su:\n");
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 ",a[i][j]);
printf("\n");
}

for(i=0;i<n;i++)
{
max=a[i][0];
for(j=0;j<n;j++)
if(max<a[i][j])
max=a[i][j];

printf("第%d行最大为%d\n",i+1,max);
}

}

POJ?