计算一个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时,那么一到四行主线上是取第一行第一个数,第二行第二个数,第三行第三个数,第四行第四个数,副线则是从最后一个递减着去取每行的数。因为每一行的数是不同的,我们需要在每一行运行时进行重新赋值,覆盖原先的值。随后累加即可。
代码如下:
#includeint main() { int n,i,j,sum=0; scanf("%d",&n); int a[n]; for (i=0;i 新手上路,有问题欢迎指出



