#include <stdio.h>
void max(int *p,int *r,int *c,int *max)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if(*(*(p+i)+j)>max)
{
*r=i;
*c=j;
max=*(*(p+i)+j);
}
}
}
}
int main()
{
int t[3][4];
int (*p)[4];
p=t;
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
scanf("%d",&t[i][j]);
}
int row=0,column=0,max=0;
max(p,&row,&column,&max);//这个地方会报错,好像是指针传输的问题
printf("max=%d\nrow=%d\ncolumn=",max,row,column);
}
https://pintia.cn/problem-sets/1498493386138501120/problems/1498493662673936391
修改见注释,供参考:
#include <stdio.h>
void max_m(int(*p)[4],int *r,int *c,int *max)
//void max(int *p,int *r,int *c,int *max)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if(*(*(p+i)+j) > *max) //if(*(*(p+i)+j)>max)
{
*r=i;
*c=j;
*max=*(*(p+i)+j); //max=*(*(p+i)+j);
}
}
}
}
int main()
{
int t[3][4];
int (*p)[4];
p=t;
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
scanf("%d",&t[i][j]);
}
int row=0,column=0,max=0;
max_m(p,&row,&column,&max);//这个地方会报错,好像是指针传输的问题
printf("max=%d\nrow=%d\ncolumn=%d",max,row,column);
//printf("max=%d\nrow=%d\ncolumn=",max,row,column);
return 0;
}