输入一个mn的整数矩阵,输出其最大值最小值及其下标
输入一个mn的整数矩阵,输出其最大值最小值及其下标输入一个m*n的整数矩阵,输出其最大值最小值及其下标
int main()
{
int a[100][100];
int n,m,max,maxi,maxj,min,mini,minj,i,j;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
maxi = maxj = mini = minj = 0;
max = min = a[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(a[i][j] > max)
{
max = a[i][j];
maxi = i;
maxj = j;
}
if(a[i][j] < min)
{
min = a[i][j];
mini = i;
minj = j;
}
}
printf("最大值为a[%d,%d]=%d\n",maxi,maxj,max);
printf("最小值为a[%d,%d]=%d\n",mini,minj,min);
return 0;
}
如果事先已经知道矩阵的m和n,可以简单的通过两个计数器来实现
维护min
,min_loc
,max
,max_loc
,count
,每读入一个数字,count
+1,并和min
,max
分别比较,如果大于max
或者小于min
,则更新max
或min
,并同时维护max_loc
和min_loc
.
读入结束后,按照loc/m
,loc%m
的方式计算其二维坐标即可