编写一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)
例如,矩阵为:
3 0 0 3
2 5 7 3
1 0 4 2
则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素和
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- a5156520 2021-11-14 18:30关注
一个简单的实现:
#include <stdio.h> int main(void){ int m = 3; int n = 4; int i = 0; int matrix [m*n]; int sum = 0; while(i<m*n){ scanf("%d",&matrix[i]); i++; } for(i=0;i<m*n;i++){ printf("matrix[%d]=%d\n",i,matrix[i]); } /* 3 0 0 3 1 0 4 2 3 2 1 3 3 2 */ //累积矩阵最上层的和 for(i=0;i<n;i++){ sum+=matrix[i]; } printf("最上层:%d\n",sum); //累积矩阵最左边的和 for(i=0;i<m;i++){ sum+=matrix[i*n]; } printf("最左边:%d\n",sum); //累积矩阵最下层的和 for(i=0;i<n;i++){ sum+=matrix[(m-1)*n+i]; } printf("最下边:%d\n",sum); //累积矩阵最右边的和 for(i=0;i<m;i++){ sum+=matrix[(n-1)+i*n]; } printf("最右边:%d\n",sum); //依次减去重复计算了一次的四个定点的值:左上角,右上角,左下角,右下角 sum-= (matrix[0]+matrix[n-1]+matrix[(m-1)*n]+ matrix[m*n-1]); printf("%dx%d矩阵的外围和是:%d\n",m,n,sum); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料