【发布时间】:2021-02-19 21:09:06
【问题描述】:
我试图找出我的嵌套循环出了什么问题,但没有收到我正在进行的练习的答案。最初的错误是有符号比较。
提示:给定一个名为 vec 的整数向量,求所有向量元素对的乘积之和。例如:{1,2,3}: (1x2)+(1x3)+(2x3) = 11。这需要存储在一个名为 result 的变量中。
函数已经设置好了,我只是写正文而已。
我的想法是,我试图用第一个 for 循环获取向量中的第一个元素,然后使用第二个 for 循环将第一个元素与向量中的其余元素相乘。我认为 j = i+1 可以让我避免在第一个 for 循环中使用的值并访问其余元素。
int result = 0;
int pair = 0;
for(int i = 0; i<=vec.size(); ++i){
int num1 = vec.at(i);
for(int j = i+1; j <= vec.size(); ++j){
int num2 = vec.at(j);
pair = num1 * num2;
result = result + pair;
}
}
【问题讨论】:
-
你没有解释你的问题是什么
-
num1*num2的结果称为product。尽量避免使用像pair这样的标准名称,因为它位于std::pair -
您好,如果您对答案很清楚,请同时标记,以便其他人知道。
标签: c++ loops for-loop vector nested-loops