用指针编程实现3X4的二维数组的元素读入以及求此二维数组的最大值及最大值下标
请用以下函数实现:
void Input(int (*p)[4],int m, int n); /*数组元素读入函数*/
int FindMax(int *p[4], int m, int n, int *pRow, int *pCol); /*求最大值及下标函数*/
***输入提示信息:"Please input your data:\n"
***输入格式要求:无格式要求
***输出格式要求:"The maximum is %d, which is in row %d, colum %d\n"
样例:
Please input your data:
**输入样例:
3 5 2 7 1 6 12 11 4 10 8 9
**输出样例:
The maximum is 12, which is in row 1, colum 2
#include <stdio.h>
#define M 3
#define N 4
void Input(int (*p)[4], int m, int n); //1
int FindMax(int (*p)[4], int m, int n, int *pRow, int *pCol); //1
main()
{
int score[M][N], maxScore, row, col;
printf("Please input your data:\n");
Input(score, M, N); //1
maxScore = FindMax(score, M, N, &row, &col); //2
printf("The maximum is %d, which is in row %d, colum %d\n", maxScore, row, col);
}
void Input(int (*p)[4], int m, int n)
{
int i, j;
for (i = 0; i < m; i++) //1
{
for (j = 0; j < n; j++) //1
scanf("%d", (p[i] + j));
}
}
int FindMax( int (*p)[4], int m, int n, int *pRow, int *pCol )
{
int i, j, max;
max = *(p[0]); //1
*pRow = 0;
*pCol = 0;
for (i = 0; i < m; i++) //1
{
for (j = 0; j < n; j++) //1
{
if ( *(p[i] + j) > max ) //1
{
max = *(p[i] + j) ; //1
*pRow = i;
*pCol = j;
}
}
}
return max;
}