C语言用指针编程实现3X4的二维数组的元素读入以及求此二维数组的最大值及最大值下标 请用以下函数实现: void Input(int *p,int m, int n); /*数组元素读入函数*/ int FindMax(int *p, 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
时间: 2023-07-01 11:08:35 浏览: 54
代码如下:
```c
#include <stdio.h>
void Input(int *p, int m, int n);
int FindMax(int *p, int m, int n, int *pRow, int *pCol);
int main() {
int a[3][4];
Input(&a[0][0], 3, 4);
int row, col;
int max = FindMax(&a[0][0], 3, 4, &row, &col);
printf("The maximum is %d, which is in row %d, colum %d\n", max, row, col);
return 0;
}
void Input(int *p,int m, int n) {
printf("Please input your data:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", p + i * n + j);
}
}
}
int FindMax(int *p, int m, int n, int *pRow, int *pCol) {
int max = *p;
*pRow = 0;
*pCol = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (*(p + i * n + j) > max) {
max = *(p + i * n + j);
*pRow = i;
*pCol = j;
}
}
}
return max;
}
```
注:这里使用了指针作为函数参数,也可以使用数组作为参数,只需稍作修改即可。
阅读全文