这程序能不能改进?
程序代码:/*
编写一个计算任意3行4列二维数组元素的最大值,并指出其所在的行列下坐标
*/
#include "stdio.h"
#define CLASS 3
#define STUD 4
int FindMax(int *p, int m, int n, int *pRow, int *pCol);
int main(void)
{
int score[CLASS][STUD], i, j, maxScore, row, col;
for(i=0; i <CLASS; i++)
{
printf("Please enter scores of class%d:\n", i+1);
for(j=0; j < STUD; j++)
{
scanf("%d", &score[i][j]);
}
}
maxScore=FindMax(*score,CLASS,STUD,&row,&col);
printf("maxScore=%d,class=%d,number=%d\n",maxScore, row+1,col+1);
return 0;
}
/*
函数功能:计算任意m行n列的二维数组中元素的最大值,并指出其所在的行列下坐标
函数参数:整形指针标量p,指向一个二维整型数组的第0行第0列
整型变量m,二维整型数组的行数
整型变量你,二维数组的列数
整型指针变量pRow,指向数组最大值所在的行下表
整型指针变量pCol,指向数组最大值所在的列下表
函数返回值:数组元素的最大值
*/
int FindMax(int *p, int m, int n, int *pRow, int *pCol)
{
int i, j, max;
max=p[0];//配初值,假设第一个元素值最大
*pRow=0;//
*pCol=0;//
for(i=0; i < m; i++)
{
for(j=0; j < n; j++)
{
if(p[i*n+j] > max)//将p[i*n+j]与当前最大值max比较
{
max=p[i*n+j];//若p[i*n+j]大,则修改当前最大值max
*pRow=i;//记录当前最大值所在的行下表
*pCol=j;//记录当前最大值所在的列下表
}
}
}
return (max);//返回最大值
}我想问下,如果出现两个或更多相同最大值,那程序明显错误,能不能把这程序改进?[ 本帖最后由 chen1204019 于 2012-12-13 22:32 编辑 ]









