这程序能不能改进?
程序代码:
/* 编写一个计算任意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 编辑 ]