题目:
输入一个n×m的整数矩阵(n<=10,m<=10),然后输出其中的最大值、最小值,并输出这两个值的下标。
输入格式:
输入矩阵的行数n和列数m(n<=10,m<=10),然后输入所有矩阵中的数据。
输出格式:
第一行输出n×m的数组中的最大值及其下标。每两项之间一个空格。 第二行输出n×m的数组中的最小值及其下标。每两项之间一个空格。 (如果有相同的最大的数,要求输出行列最小,行优先)
输入样例:
在这里给出一组输入。例如:
3 4
65 77 21 88
23 99 18 54
19 82 73 99
输出样例:
在这里给出相应的输出。例如:
max=99 row=1 col=1
min=18 row=1 col=2
代码:
#include<stdio.h>
#include<string.h>
int main (){
int a,b;
scanf("%d %d",&a,&b);
int str[a][b];
int m=0,n=0;
int q=0,w=0;
int max,min;
scanf("%d",&str[0][0]);//要先输入[0][0],没初始化的话就
//不知道这个数是比你输入的最大还大还是比最小的还小,
//这种情况下就不一定能得到正确结果
max=min=str[0][0];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
if(i==0&&j==0)continue;//这步也要有,前面已经输入[0][0]了
//没有的话就[0][0]就重新输入成[0][1]了,
//与最开始的初始化值不对
scanf("%d",&str[i][j]);
if(str[i][j]>max){
max=str[i][j];
m=i;
n=j;
}
if(str[i][j]<min){
min=str[i][j];
q=i;
w=j;
}
}
}
printf("max=%d row=%d col=%d\n",max,m,n);
printf("min=%d row=%d col=%d",min,q,w);
return 0;
}