【发布时间】:2019-06-27 14:06:01
【问题描述】:
我对变量范围感到困惑,想更好地理解它。
将 cout oddS 和 cout evenS 移到 for 循环之外。代码正确执行。如果移到 for 循环内,代码会使用不正确的奇数和偶数值执行。
#include <iostream>
#include <vector>
#include <cmath>
int main()
{
double evenS, oddS, pH = 0;
std::vector<double> v1 = {2, 4, 3, 6, 1, 9};
for(int i = 0; i < v1.size(); i++)
{
pH = v1[i];
if(fmod(pH, 2) == 0)
{
evenS = evenS + v1[i];
}
else if(fmod(pH, 2) == 1)
{
oddS = oddS + v1[i];
}
}
std::cout << evenS << "\n";
std::cout << oddS << "\n";
}
如果oddS 和evenS 在for 循环之外增加,我预计不会保持正确的值。然而,事实恰恰相反,这引起了我的困惑。
【问题讨论】:
-
如果您可以通过正确格式化括号来说明范围会更容易。通过 TAB 键输入缩进。每个新的括号是一个制表符。
标签: c++