题目描述
用指针实现:找出二维数组(设3行4列)中的最大数及其位置。
输入
二维数组(设3行4列)。
输出
最大数及其位置。
样例输入
1 2 5 4 6 8 7 2 0 2 4 5
样例输出
1 1 8
题目分析:
先假设最大数及其位置是在第0行,第0列的位置,然后遍历数组中的每一个元素,要是比0位置的要大,就替换我们的结果,更新所设的三个变量:最大值max,最大值的行坐标r,最大值的列坐标l。
代码实现:
#include<stdio.h>
#define r 3
#define l 4
int main()
{
int a[r+1][l+1]={0};
int px=0,py=0,max=0;
for(int i=0;i<r;i++)
{
for(int j=0;j<l;j++)
{
scanf("%d",&a[i][j]);
if(*(a[i]+j)>max)
{
max=a[i][j];
px=i;
py=j;
}
}
}
printf("%d %d %d",px,py,max);
return 0;
}
运行结果:
欢迎批评指正!