关于求矩阵主对角线元素之和及副对角线元素之和的问题
2016-07-20 21:12
295 查看
今天我在acm系统刷题时,遇到了一道这样的题目:
题目描述:求一个3×3矩阵对角线元素之和。输入矩阵,输出主对角线 副对角线 元素和
样例输入
1 2 3
1 1 1
3 2 1
样例输出 3 7
拿到这个题时脑子里第一时间想的是怎么先去求主对角线各元素之和,求主对角线很简单,只需要一层for循环即可.到求副对角线元素之和时,不知道自己在想啥,竟然第一思路是和求主对角线元素之和一个原理,只是把它逆向一下,结果是输出两个数都是主对角线元素之和的结果.然后自己在草稿纸上把这个三阶矩阵画出来,才发现自己的那个想法其实是倒着求主对角线元素的和.
求副对角线上的元素和还是要从矩阵第一行开始,只不过是第二个下标用矩阵阶数和当前遍历到的行数表示出来即可,并不需要两重for循环来计算.要不然计算结果将是整个矩阵元素之和.
最后改正后的代码是:
这个题虽然不难,但是自己在不断调试改正程序的过程中也学到了很多,比如,之前很多时候都想不到要去写篇博客,从中也知道思考问题必须从多个方面出发,考虑全面.奋斗奋斗
以后要常写博客,虽然自己还不知道博客具体要怎样去写,需要注意哪些方面.但是可以给自己留下宝贵的回忆,记忆深刻,也就不会犯类似的错误.微笑微笑
题目描述:求一个3×3矩阵对角线元素之和。输入矩阵,输出主对角线 副对角线 元素和
样例输入
1 2 3
1 1 1
3 2 1
样例输出 3 7
拿到这个题时脑子里第一时间想的是怎么先去求主对角线各元素之和,求主对角线很简单,只需要一层for循环即可.到求副对角线元素之和时,不知道自己在想啥,竟然第一思路是和求主对角线元素之和一个原理,只是把它逆向一下,结果是输出两个数都是主对角线元素之和的结果.然后自己在草稿纸上把这个三阶矩阵画出来,才发现自己的那个想法其实是倒着求主对角线元素的和.
求副对角线上的元素和还是要从矩阵第一行开始,只不过是第二个下标用矩阵阶数和当前遍历到的行数表示出来即可,并不需要两重for循环来计算.要不然计算结果将是整个矩阵元素之和.
最后改正后的代码是:
#include<stdio.h> int main() { int i,j; int a[3][3]; int s = 0,t = 0; for(i = 0;i < 3;i++) for(j = 0;j < 3;j++) scanf("%d",&a[i][j]); for(i = 0;i < 3;i++) s += a[i][i]; for(i = 0;i < 3;i++) t += a[i][3-i-1]; //犯错点 printf("%d %d",s,t); return 0 ; }
这个题虽然不难,但是自己在不断调试改正程序的过程中也学到了很多,比如,之前很多时候都想不到要去写篇博客,从中也知道思考问题必须从多个方面出发,考虑全面.奋斗奋斗
以后要常写博客,虽然自己还不知道博客具体要怎样去写,需要注意哪些方面.但是可以给自己留下宝贵的回忆,记忆深刻,也就不会犯类似的错误.微笑微笑
相关文章推荐
- G - 美素数
- WSDL解析
- Codeforces Round #315 (Div. 2) B 水题强行set
- lambda表达式匿名函数
- UVA-113 Power of Cryptography
- 如何创建ID3DInclude的实例
- 学习排序算法
- C++中new和delete的用法注意。
- mysql数据库操作
- 深入理解View(二):Activity的页面结构
- 关于post请求超出最大长度
- hadoop 手机流统计
- Codeforces Round #305 (Div. 2) D 栈
- Android流式布局实现
- IOS学习笔记-CocoaPods类库管理工具安装
- 浅谈IP分片和组装的原理
- RPC-server的创建过程
- [Boost]boost的时间和日期处理日期的操作和时间的操作
- hdu5723 多校第一题,longlong
- Spring mcv 框架 浅谈