c语言 输入输出m行n列的二维数组所有元素的值,并且求最大元素的值及其所在的行号和列号,要求每个模块都用函数完成
时间: 2023-12-12 09:03:33 浏览: 423
C语言程序设计-求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个);.c
5星 · 资源好评率100%
好的,我来解答你的问题。
以下是实现该功能的代码:
```c
#include <stdio.h>
// 输入二维数组
void input_array(int m, int n, int arr[m][n]) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
}
// 输出二维数组
void output_array(int m, int n, int arr[m][n]) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
// 求最大元素及其所在位置
void max_element(int m, int n, int arr[m][n], int *max, int *row, int *col) {
*max = arr[0][0];
*row = 0;
*col = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] > *max) {
*max = arr[i][j];
*row = i;
*col = j;
}
}
}
}
int main() {
int m, n;
printf("请输入行数和列数:");
scanf("%d %d", &m, &n);
int arr[m][n];
printf("请输入二维数组的所有元素:\n");
input_array(m, n, arr);
printf("您输入的二维数组是:\n");
output_array(m, n, arr);
int max, row, col;
max_element(m, n, arr, &max, &row, &col);
printf("最大元素的值为:%d,所在的行号为:%d,所在的列号为:%d\n", max, row, col);
return 0;
}
```
该程序中包含了三个函数:
- `input_array()`:输入二维数组的所有元素;
- `output_array()`:输出二维数组的所有元素;
- `max_element()`:求二维数组中的最大元素及其所在的位置。
在 `main()` 函数中,先输入行数和列数,再输入二维数组的所有元素,并输出该二维数组。最后调用 `max_element()` 函数求最大元素及其所在的位置,并输出结果。
注意:在输入二维数组时,需要使用指针或变长数组来传递二维数组的地址。在求最大元素及其所在位置时,需要使用指针或引用来返回最大元素的值及其所在的位置。
阅读全文