编写函数,求出二维数组中每行的最大元素,并保存到数组中。在main函数中验证。要求:二维数组的行数,列数,数组元素均在main函数中由键盘输入。
4条回答 默认 最新
- CSDN专家-link 2021-05-28 07:28关注
那就是指针的指针建数组,双循环遍历就行了
#include<stdio.h> #include <stdlib.h> using namespace std; /* 编写函数,求出二维数组中每行的最大元素,并保存到数组中。 在main函数中验证。要求:二维数组的行数,列数,数组元素均在main函数中由键盘输入 */ void getMax(int **p, int n,int m,int *pMax) { for (int i = 0; i < n; i++) { *(pMax + i) = p[i][0]; for (int j = 1; j < m; j++) { if (p[i][j] > *(pMax + i)) *(pMax + i) = p[i][j]; } } } int main() { int n, m,i,j; printf("请输入二维数组行数和列数:"); scanf_s("%d %d", &n,&m); int **p = new int*[n]; for (i = 0; i < n; i++) { p[i] = new int[m]; for(j=0;j<m;j++) scanf_s("%d",&p[i][j]); } // int *pMax = new int[n]; getMax(p, n,m,pMax); for (i = 0; i < n; i++) { printf("第%d行的最大值为:%d\n", i + 1, *(pMax + i)); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报