为什么程序没有正确计算值

Why does the program not calculate the value correctly?

本文关键字:计算 程序 为什么      更新时间:2023-10-16

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

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;

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

sum = sum + w;

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

您应该始终初始化变量:

double sum = 0;

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

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

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

所以应该是:

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