Have no idea what to do
This is a homework assignment and I am almost done but I get one syntax error, here is my code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
#include <iostream>
#include <cctype>
#include <cmath>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
enum Planet {MERCURY, VENUS, EARTH, MOON, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO};
string planet;
string badData = "**Invalid Planet**\n";
Planet inPlanet;
double weight;
double factor;
// Output Variable
double newWeight;
do
{
cout << "Please enter a planet: ";
cin >>planet;
switch(toupper(planet[0]))
{
case 'M' : if(toupper(planet[1]) == 'E')
{
inPlanet = MERCURY;
planet = "MERCURY"; // will correct any spelling mistakes so long as the first two letters are ME
}
else if(toupper(planet[1]) == 'A')
{
inPlanet = MARS;
planet = "MARS"; // will correct any spelling mistakes so long as the first two letters are MA
}
else if(toupper(planet[1]) == 'O')
{
inPlanet = MOON;
planet = "MOON"; // etc... you get the idea
}
else
{
cout <<badData; // will output badData if the entry is invalid
main(); // will start from the beginning
}
break;
case 'V' : inPlanet = VENUS;
planet = "VENUS";
break;
case 'E' : inPlanet = EARTH;
planet = "EARTH";
break;
case 'J' : inPlanet = JUPITER;
planet = "JUPITER";
break;
case 'S' : inPlanet = SATURN;
planet = "SATURN";
break;
case 'U' : inPlanet = URANUS;
planet = "URANUS";
break;
case 'N' : inPlanet = NEPTUNE;
planet = "NEPTUNE";
break;
case 'P' : inPlanet = PLUTO;
planet = "PLUTO";
break;
default : cout <<badData <<endl;
break;
}
cout << "Please enter your weight in pounds: ";
cin >> weight;
while (weight)
if(inPlanet == MERCURY)
factor = 0.4155;
else if(inPlanet == VENUS)
factor = 0.8975;
else if(inPlanet == EARTH)
factor = 1.0;
else if(inPlanet == MOON)
factor = 0.166;
else if(inPlanet == MARS)
factor = 0.3507;
else if(inPlanet == JUPITER)
factor = 2.5374;
else if(inPlanet == SATURN)
factor = 1.0677;
else if(inPlanet == URANUS)
factor = 0.8947;
else if(inPlanet == NEPTUNE)
factor = 1.1794;
else if(inPlanet == PLUTO)
factor = 0.0899;
}
// Output the results
newWeight = factor * wieght;
cout << "You selected " << planet << " as your planet. " << endl;
cout << "You entered " << weight << " as your weight. " << endl;
cout << fixed << setprecision(2) << "Your weight on " << planet << " is " << newWeight << "lbs" << endl;
cin.get();
cin.get();
return 0;
}
|
And here is my error:
error C2061: syntax error : identifier 'newWeight'
I have gone back to assignments like this one and I never got that error, could someone please point me in the right direction, thanks
am I missing something or have you missed something, what type is newWieght?
int, double?
Don't try to call main();
from within main().
Use the normal control structures such as the while loop, or an if statement to achieve the processing you want.
Topic archived. No new replies allowed.