急!函数原型为: 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; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?