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.4doubleの離散表現には一定の不確実性があるため、評価される場合とされない場合があります。(deci1は3.399999999または3.400000000001である可能性があり、1つはtrueを返し、もう1つはそのループでfalseを返します)

于 2012-10-27T22:54:15.060 に答える