1

我需要编写一个程序来显示数字 -1.1 到 3.4,然后显示负和和正和。我已经编写了显示数字的循环,但我不知道如何从这个循环中获取负和和正和。我需要在这段代码中的某处分配总和:

double deci1 = -1.1; 

while (deci1 <= 3.4)
{
    cout << deci1 << " "; 
    deci1 = deci1 + 0.3; 
} 

..这样程序将显示“负和为-2.6”,“正和为21”..在显示值列表之后。请帮忙。我知道这可能真的很简单,我想太多了。

4

1 回答 1

0

会是这样的

double sumNeg = 0.0;
double sumPos = 0.0;

while(deci1 <= 3.4)
{
   if(deci1 < 0)
   {
      sumNeg += deci1;
   }
   else
   {
      sumPos += deci1;
   }
   deci1+=0.3;
}

printf("Negative sum: %3.3f\nPositive sum %3.3f\n", sumNeg, sumPos);

您应该注意的是deci1 <= 3.4,它可能会或可能不会评估,因为您确实对双精度数的离散表示具有一定的不确定性。(你的 deci1 可能是 3.3999999999 或 3.400000000001,一个返回真,一个返回假)

于 2012-10-27T22:54:15.060 回答