6
找数组最值
(4分)
题目内容:
按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值。其中,m和n的值由用户键盘输入。已知m和n的值都不超过10。
void InputArray(int *p, int m, int n);
int FindMax(int *p, int m, int n, int *pRow, int *pCol);//函数返回最大值,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"
数组输入提示信息: "Input %d*%d array:\n"
输入格式:
输入数组行列数:"%d,%d"
输入数组元素:"%d"
输出格式: "max=%d,row=%d,col=%d\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
时间限制:500ms内存限制:32000kb
#include <stdio.h>
int main()
{
int a[11][11],i,j,m,n,maxi,maxj,max;
printf("Input m,n:\n");
scanf("%d,%d",&m,&n);
printf("Input %d*%d array:\n",m,n);
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
scanf("%d",&a[i][j]);
max=a[1][1];maxi=1;maxj=1;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
if (max< a[i][j]){max=a[i][j];maxi=i;maxj=j;}
printf("max=%d,row=%d,col=%d\n",max,maxi-1,maxj-1);
return 0;
}