栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

PTA平台,c++,用一维数组 。计算一个N×N(2<=N<=10)整型矩阵的主对角线元素及副对角线元素之和。注意:若某数组元素既在主对角线上又在副对角线上,则只加一次。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PTA平台,c++,用一维数组 。计算一个N×N(2<=N<=10)整型矩阵的主对角线元素及副对角线元素之和。注意:若某数组元素既在主对角线上又在副对角线上,则只加一次。

计算一个N×N(2<=N<=10)整型矩阵的主对角线元素及副对角线元素之和。注意:若某数组元素既在主对角线上又在副对角线上,则只加一次。

输入格式:

输入第一行给出一个正整数N,要求2<=N<=10。随后N行,每行输入N个整数,其间以空格分隔。

输出格式:

输出矩阵主、副对角线元素之和。

输入样例:

在这里给出一组输入。例如:

3
1 3 5
6 7 9
2 4 8

输出样例:

在这里给出相应的输出。例如:

23

首先我们要知道什么是主对角和副对角如图:

如题目给出的测试答案23便是23=1+7+8+5+2

我们要使用一维数组去做这一道题目,首先我们需要将这个矩形分为两种矩形一种奇的和偶的。

这两种有什么区别呢?

区别在于,奇矩形会重复一遍最中间的数,而偶矩形不会

比如题目中的就是奇矩形,我们举一个偶矩形的例子

比如我们输入n=4

假设生成:

1  2  3  4

4  3  2  1

5  6  7  8

9  8  7  6

那么此时的结果应该是主线(1+3+7+6)+副线(4+2+6+9)

在使用一维数组做这题时,我们可以利用一个大循环来控值外层总共的行数,再去循环每一行时的有规律数进行累加,如果是奇矩形那么要进行一次减法因为会重复一次中间的数的累加。如果n=4时,那么一到四行主线上是取第一行第一个数,第二行第二个数,第三行第三个数,第四行第四个数,副线则是从最后一个递减着去取每行的数。因为每一行的数是不同的,我们需要在每一行运行时进行重新赋值,覆盖原先的值。随后累加即可。

代码如下:

#include
int main()
{
    int n,i,j,sum=0;
    scanf("%d",&n);
    int a[n];
    for (i=0;i 

新手上路,有问题欢迎指出

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号