rand() and syntax error
This is my code:
#include <iostream> #include <cstdlib> #include <cmath> using namespace std; int main(void) { int atHome = 0; int stepsToTry = 5000; double x = 0; double y = 0; double dx = 0; double dy = 0; double angle; const double PI = 4*atan(1.0); cout << "Will Waldo make it home?\n\n"; cout << "Input an int to start the random number generator: "; int myStart; cin >> myStart; srand(myStart); for (int i = 0; i < stepsToTry; i = i + 1) { rand() do { double angle = 2*PI*rand()/RAND_MAX; dx = cos(angle); dy = sin(angle); }while (atHome = 0); do { y = y + dy; }while (y >= -10 && y <= 10); do { x = x + dx; }while (x >= -10 && x <= 10); if (x>=8 && x<=10) { if(y >= 8 && y <= 10) { atHome = 1; } } } if (atHome) { cout << "Waldo made it home after taking " << i << "steps!\n"; } else { cout << "Waldo is still lost after taking" << stepsToTry << "steps\n\n"; cout << "Please play again and try to get Waldo home!\n"; } return 0; } And this is my error message: waldo.cpp: In function 'int main()': waldo.cpp:24: synatx error before 'do': waldo.cpp: At global scope: waldo.cpp:41: syntax error before 'if': waldo.cpp:46: syantax error before '<<' token: I'm not exactly sure how to use rand() and I bet that's my problem. Could someone help please? |
Your call to rand() should have a semi-colon (;) after it. That's likely the source of your syntax error. rand() returns an integer between 0 and RAND_MAX. An easy way to get a random number between 0 and some_number is to do:
Code:
int num = rand() % upper_limit; |
Okay I did that and the syntax errors went away. Now I get:
waldo.cpp: In function 'int main()': waldo.cpp:41: name lookup of 'i' changed for new ISO 'for' scoping waldo.cpp:21: using obsolete binding at 'i' |
All times are GMT -5. The time now is 02:34 PM. |