为什么程序无法正确计算该值?

时间:2019-11-12 18:02:38

标签: c++

我有任务。我需要评估表达式:

w =(3x + 6x + 9x ... + 90x)-15,x = 0.03

此表达式的计算应使用while循环进行。

我编写了程序代码,但给人的印象是它无法正常工作。

请查看我的代码是否正常工作?我很没有经验=(

double x = 0.03;
double w, sum;
int counter1 = 0;
while (counter1 <= 90) {
    counter1 += 3;
    w = counter1 * x;
    sum = sum + w;
}
sum = sum - 15;
cout << "Calculation result, w =: " << sum << endl;

1 个答案:

答案 0 :(得分:4)

您的问题是第一次通过循环:

sum = sum + w;

sum未初始化,因此它可以包含任何垃圾。

您应始终初始化变量:

double sum = 0;

此外,正如@ formerlyknownas_463035818所评论的那样,您的循环太远了:

while (counter1 <= 90) {
    counter1 += 3;
    ...

您的上学期将是93 * x,而不是您想要的90 * x

应该是:

while (counter1 < 90) {
    counter1 += 3;
    ...