【发布时间】:2020-07-12 02:34:54
【问题描述】:
我正在 Codecademy 中学习 C++,并且对在更改向量中的值时使用 for 循环有疑问/担忧:
#include <iostream>
#include <vector>
int main() {
std::vector<double> delivery_order;
delivery_order.push_back(8.99);
delivery_order.push_back(3.75);
delivery_order.push_back(0.99);
delivery_order.push_back(5.99);
// Calculate the total using a for loop:
for (int total; total < delivery_order.size(); total++) {
total = total + delivery_order[total];
}
double total = 8.99;
std::cout << "Total: $" << total << "\n";
}
谁能告诉我代码有什么问题?如果 double total 等于 任意数字,则输出将是任意数字。如果 double total 写成 double total; - 输出将是:
总计:$2.07559e-317
这段代码来自 Codecademy “Vectors” C++ 课程。
【问题讨论】:
-
total在循环内是int total您也用于循环变量(这没有任何意义)。然后有一个单独的、不相关的变量double total- 那就是你打印的那个;循环从未接触过它,它的值不受delivery_order内容的影响 -
我刚刚让 Codecademy 课程向我展示了正确的代码。由于误判了课程中代码的布局方式,我误认为将 double total 变量放在 for-loop 下方,这就是输出不正确的原因。在 for-loop 上方编写变量行产生了预期的结果:- 总计:$19.72
标签: c++ loops for-loop vector operation