赞
踩
题目描述:
分别求一个n乘n的方针的主对角线元素之和和副对角线的元素之和。比如一个3乘3的方针主对角线和副对角线。
如下图:
输入格式:
第一行输入一个整数 n(1≤n≤100)。接下来n行,每行输入n个整数,每个整数的绝对值小于等于1000。
输出格式:
输出一行两个整数,分别表示主对角线和副对角线的和值,用一个空格隔开。
样例输入:
3
1 2 3
4 5 6
7 8 9
样例输出:
15 15
思路:
1.创建一个二维数组,把数存进去。
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> a[i][j];
}
}
2.去寻找主对角线和副对角线的规律,
可发现规律如下:
主对角线 :都是n的平方。
副对角线:位置和是n+1。
然后把数存进变量里。
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i + j == n + 1) {
sum += a[i][j];
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
sum1 += a[i][j];
}
}
}
3.最后把两条对角线的和输出。
注意:
1.输出时每行末尾的多余空格,不影响答案正确性。
2.输出时要先输出主对角线,在输出副对角线,不能弄反了。
具体代码如下:
点赞加关注在复制哦!
#include <bits/stdc++.h> using namespace std; int a[105][105]; int main() { int n; int sum = 0; int sum1 = 0; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { cin >> a[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (i + j == n + 1) { sum += a[i][j]; } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (i == j) { sum1 += a[i][j]; } } } cout << sum1 << " "; cout << sum; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。