18062 二维数组每行中的最大值
Description
输入一个4*4的二维整型数组,使用指针变量查找并输出二维整型数组中每一行的最大值。
#include <stdio.h>
void find(int a[][4])
{
int (*p)[4], *q, *max;
for( )
{
max=*p;
for( )
{
}
printf("%d\n", *max);
}
}
int main()
{
int a[4][4],i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf(“%d”, &a[i][j]);
find(a);
return 0;
}
输入格式
4*4的整数矩阵
输出格式
每行最大值,一行一个
输入样例
1 2 3 4
8 7 6 5
1 1 1 1
2 2 2 2
输出样例
4
8
1
2
注意弄清二维数组中指针的指向
数组中的指针
#include <iostream>
using namespace std;
void find(int a[][4])
{
//p:指针地址,*p:行地址,**p:值
int (*p)[4], *q, *max;
for(p = a;p < a + 4;p++) //p=a的首地址(第一行第一个元素的地址),p++即a的下一行
{
max=*p;//max指针=行地址,*max = **p(值)
for(q = *p+1;q < *p + 4;q++) //遍历列,指针 = p指向的值的地址+1,即*q=**p(值),q++即下一列
{
if(*max < *q) *max = *q; //值的对应地址更改
}
printf("%d\n", *max);
}
}
int main()
{
int a[4][4],i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
scanf("%d", &a[i][j]);
find(a);
return 0;
}