期末考试
Description
请用C语言实现一个程序,要求能求出给定数字矩阵的最大值与最小值,以及分别对应的行号和列号。
Input
第1行输入矩阵的行数与列数,用空格隔开。
第2行开始输入矩阵。
Output
第1行输出矩阵的最大值 ;
第2行输出最大值出现的行号与列号,行号列号之间用空格隔开;
第3行输出矩阵的最小值;
第4行输出最小值出现的行号与列号,行号列号之间用空格隔开。
Sample Input
4 3
1 2 3
4 5 6
7 8 9
10 11 12
Output
12
4 3
1
1 1
HINT
任意两个矩阵元素不相同,矩阵的每一个元素都为整数,且都不超过1000000
#include<stdio.h>
int main()
{
int a[20][20];
int max=0;int min=10000;
int i,j;
int l,m;
int x,y;
l=0;
m=0;
scanf("%d%d",&x,&y);
for(i = 0;i < x;i++)
{
for(j = 0;j < y;j++)
scanf("%d",&a[i][j]);
}
for(i = 0;i < x;i++)
{
for(j = 0;j < y;j++)
{
if(max<a[i][j])
{ max=a[i][j];
l=i+1;m=j+1;
}
}
}
printf("%d\n",max);
printf("%d %d\n",l,m);
for(i = 0;i < x;i++)
{
for(j = 0;j < y;j++)
{
if(min>a[i][j])
{ min=a[i][j];
l=i+1;m=j+1;
}
}
}
printf("%d\n",min);
printf("%d %d\n",l,m);
return 0;
}
之前一直想用一个另外的一个二维数组来表示出来,结果发现有点麻烦,不如直接min,max来表示,那个还是我从我同学那里看到的,非常好用。通过两次的比较能够很好的把要的值求出,那个求序列感觉有点麻烦,但其实通过数列可以很好的把它求出。