急!函数原型为: void fun(int **p,int m, int n); 根据下面的说明,编写该函数。
(1)函数功能:求出二维数组首行元素之和,然后将其加到数组所有元素上。
例如 m=3 n=3
1 2 3
4 5 6
7 8 9
交换后:
7 8 9
10 11 12
13 14 15
(2)入口参数:函数形参p、m和n表示:p是 mxn 的二维数组首地址(可能是动态分配获得)。
(3)出口值: 无

函数原型为: void fun(int **p,int m, int n); 根据下面的说明,编写该函数。 (1)函数功能:求出二维数组首行元素之和,然后将其加到数组所有
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qfl_sdu 2022-05-29 12:28关注
如下:
void fun(int **p,int m, int n) { int i,j; int sum = 0; //计算第一行的和 for(i=0;i<n;i++) sum += p[0][i]; for(i=0;i<m;i++) { for(j=0;j<n;j++) p[i][j] += sum; } }
运行示例(先输入m和n的值,然后输入二维数组的值,最后输出运算结果):
代码:
#include <stdio.h> #include <stdlib.h> void fun(int **p,int m, int n); int main() { int **a; int i,j; int m,n; //输入数组的行和列 scanf("%d %d",&m,&n); a = (int**)malloc(m*sizeof(int*)); for(i=0;i<m;i++) a[i] = (int*)malloc(n*sizeof(int)); //输入数据 for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%d",&a[i][j]); } } fun(a,m,n); //输出 for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(j<n-1) printf("%d ",a[i][j]); else printf("%d\n",a[i][j]); } } return 0; } void fun(int **p,int m, int n) { int i,j; int sum = 0; //计算第一行的和 for(i=0;i<n;i++) sum += p[0][i]; for(i=0;i<m;i++) { for(j=0;j<n;j++) p[i][j] += sum; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录