首页 > 解决方案 > 为什么程序不能正确计算值?

问题描述

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

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;

标签: c++

解决方案


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

sum = sum + w;

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

您应该始终初始化变量:

double sum = 0;

另外,正如@foreknownas_463035818 评论的那样,您的循环太过分了:

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

你的最后一个任期将93 * x不是90 * x你想要的。

所以应该是:

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

推荐阅读