Please Help! - Expected while before ( token

Apr 1, 2011 at 10:47am
I'm getting this error on the below code and can't seem to see where i'm going wrong. Please could someone point me in the right direction. Thanks in advance.


**************The Error is ************************
*******In function 'float calcActualAmount(float,int)'
Line62*expected 'while' before '(' token


The piece of code i'm getting the error on is:
************************************************

amountP = calcAllowedPerChild(nrChildrenP) - leftToSpend;

while (leftToSpend == 0);

}


return(amountP);
}

int main()

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

const float maxPerUnit = 20000.00;
//minPerChild includes a standard gift consisting of a bath towel and a facecloth
const float minPerChild = 100.00;
const float maxPerChild = 180.00;
//depending on the amount, the child may also get one or more of the following;
const float TOOTHBRUSH = 29.95;
const float HIGHLIGHTERS = 25.95;
const float CRAYONS = 17.95;
const float NOTEBOOK = 12.95;
const float PEN = 9.99;

float calcAllowedPerChild(int nrChildrenP)
{
float amtGiftP = 20000.00 / nrChildrenP;
return amtGiftP;
}

float calcActualAmount(float amountP, int nrChildrenP)
{
float leftToSpend;
if (calcAllowedPerChild(nrChildrenP) > 180)
amountP = 180;
else if (calcAllowedPerChild(nrChildrenP) < 180)
leftToSpend = calcAllowedPerChild(nrChildrenP) - 100;
do
{
for (int i = 1; i <= 5; i++)

switch (i)
{
case 1: leftToSpend -= TOOTHBRUSH;
break;

case 2: leftToSpend -= HIGHLIGHTERS;
break;

case 3: leftToSpend -= CRAYONS;
break;

case 4: leftToSpend -= NOTEBOOK;
break;

case 5: leftToSpend -= PEN;
break;
}


amountP = calcAllowedPerChild(nrChildrenP) - leftToSpend;

while (leftToSpend == 0);

}


return(amountP);
}

int main()
{
float amtGift; // Allowed amount per child
float amtSpentPerChild = 0.00; // actual amount spent per child
float totalSpent = 0.00; // total spent for 1 orphanage
float totalAll = 0.00; // total spent for all 4 orphanages
int nrChildren;

cout << "Enter the amount of children: " << endl;
cin >> nrChildren;
amtGift = calcAllowedPerChild(nrChildren);
cout.setf(ios::fixed);
cout.precision(2);
cout << endl << " Allowable amount per child : R" << amtGift;
cout << endl << endl;
amtSpentPerChild = calcActualAmount(amtGift, nrChildren);
cout << endl << " Actual amount spent per child : R" ;
cout << amtSpentPerChild << endl << endl;
totalSpent = calcTotalSpent(nrChildren, amtSpentPerChild);
cout << endl << " The actual amount spent was : R" ;
cout << totalSpent << endl;

system("pause");

return 0;

}




Last edited on Apr 1, 2011 at 11:14am
Apr 1, 2011 at 10:55am
Yes this
1
2
3
while (leftToSpend == 0);

}
must be
1
2
3
} while (leftToSpend == 0); // Note the }

}
Apr 1, 2011 at 10:56am
Use [code][/code] tags next time.

Your problem is that you need a '}' before your while there. Go look at the syntax for a do...while loop again and you should see it.
Topic archived. No new replies allowed.