//函数返回最大值,pRow和pCol分别返回最大值所在的行列下标
例如,程序的1次运行结果如下:
Input n: 3,4↙
Input 3*4 array:
1 2 3 4↙
5 6 7 8↙
9 0 -1 -2↙
max=9,row=2,col=0
数组维数输入提示信息: "Input m,n:\n"
数组维数输入格式: "%d,%d"
数组元素输入提示信息: "Input %d*%d array:\n"
数组元素输入格式::"%d"
输出格式: "max=%d,row=%d,col=%d\n"*/
#include
void InputArray(int *p, int m, int n)
{
int i,j
printf("Input %d*%d array:\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&*(p+i)+j);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",*(p+i)+j);
if((j+1)%n==0)
printf("\n");
}
}
}
int FindMax(int *p, int m, int n, int *pRow, int *pCol)
{
int i,j,max=p[0];
*pRow=0,*pCol=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(*(p+i)+j>max)
{
max=*(p+i)+j;
*pRow=i;
*pCol=j;
}
}
}
return max;
}
int main()
{
int p[10][10],pRow, pCol;
int m,n;
int max;
printf("Input m,n:\n");
scanf("%d,%d",&m,&n);
InputArray(*p,m,n);
max=FindMax(*p,m,n,&pRow,&pCol);
printf("max=%d,row=%d,col=%d\n",max,pRow,pCol);
}