0

私はこの状況に合うようにプログラムを書いています: 2 人の子供がいます。二人ともお金を合計して、アイスクリームやキャンディーにお金を使うかどうかを決定します。20 ドル以上ある場合は、そのすべてをアイスクリーム (1.50 ドル) に使います。それ以外の場合は、そのすべてをキャンディ ($.50) に費やします。彼らが購入するアイスクリームやキャンディーの量を表示します。

I've written my code here:

#include<iostream>
#include <iomanip>
using namespace std;

//function prototypes
void getFirstSec(double &, double &);
double calcTotal(double, double);

int main( )
{

//declare constants and variables
double firstAmount = 0.0;
double secondAmount = 0.0;
double totalAmount = 0.0;
const double iceCream = 1.5;
const double candy = 0.5;
double iceCreamCash;
double candyCash;
int iceCreamCount = 0;
int candyCount = 0;


//decides whether to buy ice cream or candy
getFirstSec(firstAmount, secondAmount);
totalAmount = calcTotal(firstAmount, secondAmount);

if (totalAmount > 20)
{
       iceCreamCash = totalAmount;
       while (iceCreamCash >= 0)
       {
              iceCreamCash = totalAmount - iceCream;
              iceCreamCount += 1;
       }
       cout << "Amount of ice cream purchased : " << iceCreamCount;
}
else
{
       candyCash = totalAmount;
       while (candyCash >= 0)
       {
              candyCash = totalAmount - candy;
              candyCount += 1;
       }
       cout << "Amount of candy purchased : " << candyCount;
}
}
// void function that asks for first and second amount
void getFirstSec(double & firstAmount, double & secondAmount) 

{
cout << "First amount of Cash: $";
cin >> firstAmount;
cout << "Second amount of Cash: $";
cin >> secondAmount;
return;
}
// calculates and returns the total amount
double calcTotal(double firstAmount , double secondAmount) 
{
    return firstAmount + secondAmount;
}

1回目と2回目の金額を入力したのですが、if/elseの部分まで続きません。ここで何が問題なのか、誰か教えてもらえますか? ありがとう!

4

1 に答える 1

6
   while (iceCreamCash >= 0)
   {
          iceCreamCash = totalAmount - iceCream;
          iceCreamCount += 1;
   }

このループは終わりません。iceCreamCashループ内では、ループの各反復で減少するものはありません。おそらくあなたは次のことを意味しました:

   while (iceCreamCash >= 0)
   {
          iceCreamCash = totalAmount - iceCream * iceCreamCount;
          iceCreamCount += 1;
   }
于 2012-12-17T17:14:38.963 に答える