【发布时间】:2020-04-18 09:43:06
【问题描述】:
如果输入是:
4
1 6 3 1
6 1 3 1
1 3 1 6
3 1 6 1
我的输出应该是:
18
1 + 6 + 3 + 6 + 1 + 1 = 18
第二条对角线是从右上角开始到左下角的对角线
1
3
3
3
我需要找到严格高于第二条对角线的元素的总和。
这是我目前的代码:
int n , sum = 0;
cin >> n;
vector<vector<int>> A(n);
for (auto rows : A)
for (auto elements : rows)
cin >> elements;
for(auto x : A)
sum += A[x] [n - x];
cout << sum;
我是矩阵向量的新手。另外,如果你们知道我可以在哪里提高我的矢量技能,并更好地理解 stl 矢量,您的建议将非常有帮助!
如果您能帮助我,将不胜感激!
谢谢大家的回答!
【问题讨论】:
-
我是矩阵向量的新手 -- 使用与使用
[][]的常规二维数组完全相同的语法来检索或设置元素 -
@PaulMcKenzie 如果你能帮助我编写代码,那将非常有帮助!
-
输入的第二条对角线是 (1,3,3,3) 而不是 (1,3,3,1)
-
A
std::vector<vector<int>>不仅需要设置行数,还需要设置内部向量的大小。您的代码只做第一件事,而不做第二件事。 -
@BlueTune 我改了