| | |
How can I add a loop for this code
Please support our C++ advertiser: Intel Parallel Studio Home
Thread Solved |
•
•
Join Date: Dec 2008
Posts: 1
Reputation:
Solved Threads: 1
I dont know if you already figure it out, but here it is...
.../ your code
int addAnswer = add1 + add2;
int subAnswer = sub1- sub2;
int multiplyAnswer = multiply1 * multiply2;
int divAnswer = div1 / div2;
choice=6; // this is what I added
while (choice!=5) { // the loop
check the program, if you notice everytime the user makes a choice, at the end you terminate the program, what you need to do is to initialize "choice =6" and delete "return 0" for everyoption...
check this out:
../ your code showing the menu
if (choice==1)
{
cout << setw (6) << add1 << endl;
cout << "+ ";
cout << setw (4) << add2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == addAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << addAnswer;
cout << "\n";
choice=6;
}
else if (choice==2)
{
cout << setw (6) << sub1 << endl;
cout << "- ";
cout << setw (4) << sub2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == subAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << subAnswer;
cout << "\n";
choice=6; }
else if (choice==3)
{
cout << setw (6) << multiply1 << endl;
cout << "* ";
cout << setw (4) << multiply2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == multiplyAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer;
cout << "\n";
choice=6; }
else if (choice==4)
{
cout << setw (6) << div1 << endl;
cout << "/ ";
cout << setw (4) << div2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == divAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << divAnswer;
cout << "\n";
choice=6; }
else if (choice==5)
{cout << "Thanks for playing\n";}
else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}
} // end of while
.../ your code
int addAnswer = add1 + add2;
int subAnswer = sub1- sub2;
int multiplyAnswer = multiply1 * multiply2;
int divAnswer = div1 / div2;
choice=6; // this is what I added
while (choice!=5) { // the loop
check the program, if you notice everytime the user makes a choice, at the end you terminate the program, what you need to do is to initialize "choice =6" and delete "return 0" for everyoption...
check this out:
../ your code showing the menu
if (choice==1)
{
cout << setw (6) << add1 << endl;
cout << "+ ";
cout << setw (4) << add2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == addAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << addAnswer;
cout << "\n";
choice=6;
}
else if (choice==2)
{
cout << setw (6) << sub1 << endl;
cout << "- ";
cout << setw (4) << sub2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == subAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << subAnswer;
cout << "\n";
choice=6; }
else if (choice==3)
{
cout << setw (6) << multiply1 << endl;
cout << "* ";
cout << setw (4) << multiply2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == multiplyAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer;
cout << "\n";
choice=6; }
else if (choice==4)
{
cout << setw (6) << div1 << endl;
cout << "/ ";
cout << setw (4) << div2 << endl;
cout << "------";
cout << "\n";
cin >> input;
cout << "\n";
if
(input == divAnswer)
cout << "Congratulations\n";
else
cout << "That is incorrect,\nThe correct answer is: " << divAnswer;
cout << "\n";
choice=6; }
else if (choice==5)
{cout << "Thanks for playing\n";}
else
{cout << "You can only select options 1-5, run the program again and select a option 1-5\n";}
} // end of while
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
•
•
•
•
I dont know if you already figure it out, but here it is...
.../ your code
C++ Syntax (Toggle Plain Text)
int addAnswer = add1 + add2; int subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2; int divAnswer = div1 / div2; choice=6; // this is what I added while (choice!=5) { // the loop check the program, if you notice everytime the user makes a choice, at the end you terminate the program, what you need to do is to initialize "choice =6" and delete "return 0" for everyoption... check this out: ../ your code showing the menu if (choice==1) { cout << setw (6) << add1 << endl; cout << "+ "; cout << setw (4) << add2 << endl; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; choice=6; } else if (choice==2) { cout << setw (6) << sub1 << endl; cout << "- "; cout << setw (4) << sub2 << endl; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; choice=6; } else if (choice==3) { cout << setw (6) << multiply1 << endl; cout << "* "; cout << setw (4) << multiply2 << endl; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; choice=6; } else if (choice==4) { cout << setw (6) << div1 << endl; cout << "/ "; cout << setw (4) << div2 << endl; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; choice=6; } else if (choice==5) {cout << "Thanks for playing\n";} else {cout << "You can only select options 1-5, run the program again and select a option 1-5\n";} } // end of while
Ok I tried to do this and add the choice=6 and deleted the return 0 and nothing.
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; add1 = (rand()%500)+1, add2 = (rand()%500)+1; sub1 = (rand()%500)+1, sub2 = (rand()%98)+1; multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1; div1 = (rand()%500)+1, div2 = (rand()%8)+1; int addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Addition\n"; cout << "2. Subtraction\n"; cout << "3. Multiplication\n"; cout << "4. Division\n"; cout << "5. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; while (choice!=5) if (choice==1) { cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==2) { cout << setw (6) << sub1 << "\n"; cout << "- "; cout << setw (4) << sub2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; choice=6; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } else {cout << "You can only select options 1-5, run the program again and select a option 1-5\n";} return 0; }
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
Ok I got the loop to work now why am I not generating random numbers each time. It just displays the same numbers each time a selection is picked. It will display random numbers when I re run the program but now if I run it again with the loop.
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; add1 = (rand()%500)+1, add2 = (rand()%500)+1; sub1 = (rand()%500)+1, sub2 = (rand()%98)+1; multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1; div1 = (rand()%500)+1, div2 = (rand()%8)+1; int addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; do { //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\n"; cout << "2. Subtraction\n"; cout << "3. Multiplication\n"; cout << "4. Division\n"; cout << "5. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; //Validate the menu selection while (choice < 1 || choice > 5) { cout << "That is not a valid option\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; } if (choice==1) { cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; } else if (choice==2) { cout << setw (6) << sub1 << "\n"; cout << "- "; cout << setw (4) << sub2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
Last edited by davids2004; Dec 1st, 2008 at 9:56 pm.
•
•
Join Date: May 2008
Posts: 538
Reputation:
Solved Threads: 86
Short answer:
Move the
Longer answer:
If you were to break each problem type out into a function, you could call it from the
This second method would have the added advantage of having everything about the problem all in one place. (The random parameters, the display, the input and the validation.) Also, your code wouldn't be bothering to generate random problems that will never be used.
Sample add method:
Move the
do { from line 23/24 in front of the random stuff starting on line 15.Longer answer:
If you were to break each problem type out into a function, you could call it from the
if (choice == stuff. The function could then generate the random values for the problem.This second method would have the added advantage of having everything about the problem all in one place. (The random parameters, the display, the input and the validation.) Also, your code wouldn't be bothering to generate random problems that will never be used.
Sample add method:
c++ Syntax (Toggle Plain Text)
void add() { int add1 = (rand()%500)+1; int add2 = (rand()%500)+1; int addAnswer = add1 + add2; cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; }
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
•
•
•
•
Short answer:
Move thedo {from line 23/24 in front of the random stuff starting on line 15.
Longer answer:
If you were to break each problem type out into a function, you could call it from theif (choice ==stuff. The function could then generate the random values for the problem.
This second method would have the added advantage of having everything about the problem all in one place. (The random parameters, the display, the input and the validation.) Also, your code wouldn't be bothering to generate random problems that will never be used.
Sample add method:
c++ Syntax (Toggle Plain Text)
void add() { int add1 = (rand()%500)+1; int add2 = (rand()%500)+1; int addAnswer = add1 + add2; cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; }
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
Murtan,
I used your short answer method as we are just starting to learn about functions.
Thanks and problem solved
I used your short answer method as we are just starting to learn about functions.
Thanks and problem solved
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; do {add1 = (rand()%500)+1, add2 = (rand()%500)+1; sub1 = (rand()%500)+1, sub2 = (rand()%98)+1; multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1; div1 = (rand()%500)+1, div2 = (rand()%8)+1; int addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\n"; cout << "2. Subtraction\n"; cout << "3. Multiplication\n"; cout << "4. Division\n"; cout << "5. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; //Validate the menu selection while (choice < 1 || choice > 5) { cout << "That is not a valid option\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; } if (choice==1) { cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; } else if (choice==2) { cout << setw (6) << sub1 << "\n"; cout << "- "; cout << setw (4) << sub2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
Ok fixed it so it would display the menu again if you do not select a valid option
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cstdlib> #include <iomanip> #include <ctime> using namespace std; int main () { srand((unsigned)time(0)); int add1, add2, sub1, sub2; int multiply1, multiply2, div1, div2; int choice, input; do {add1 = (rand()%500)+1, add2 = (rand()%500)+1; sub1 = (rand()%500)+1, sub2 = (rand()%98)+1; multiply1 = (rand()%98)+1, multiply2 = (rand()%8)+1; div1 = (rand()%500)+1, div2 = (rand()%8)+1; int addAnswer = add1 + add2, subAnswer = sub1- sub2; int multiplyAnswer = multiply1 * multiply2, divAnswer = div1 / div2; //Display the menu and get the user's choice cout << " Math Tutor \n\n"; cout << "1. Addition\n"; cout << "2. Subtraction\n"; cout << "3. Multiplication\n"; cout << "4. Division\n"; cout << "5. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; //Validate the menu selection while (choice < 1 || choice > 5) { cout << "That is not a valid option\n"; cout <<"Please select again\n\n "; cout << " Math Tutor \n\n"; cout << "1. Addition\n"; cout << "2. Subtraction\n"; cout << "3. Multiplication\n"; cout << "4. Division\n"; cout << "5. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-5): "; cin >> choice; cout << "\n"; } if (choice==1) { cout << setw (6) << add1 << "\n"; cout << "+ "; cout << setw (4) << add2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == addAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << addAnswer; cout << "\n"; cout << "\n"; } else if (choice==2) { cout << setw (6) << sub1 << "\n"; cout << "- "; cout << setw (4) << sub2 << "\n"; cout << "------"; cout << "\n"; cin >> input; cout << "\n"; if (input == subAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << subAnswer; cout << "\n"; cout << "\n"; } else if (choice==3) { cout << multiply1; cout << " * "; cout << multiply2 << "="; cin >> input; cout << "\n"; if (input == multiplyAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << multiplyAnswer; cout << "\n"; cout << "\n"; } else if (choice==4) { cout << div1; cout << "/"; cout << div2 << "="; cin >> input; cout << "\n"; if (input == divAnswer) cout << "Congratulations\n"; else cout << "That is incorrect,\nThe correct answer is: " << divAnswer; cout << "\n"; cout << "\n"; } else if (choice==5) { cout << "Thanks for playing\n"; cout << "\n"; cout << "\n"; } } while (choice !=5); return 0; }
![]() |
Similar Threads
- Stack in C (C)
- Help with calculating avrg from input file. (C++)
- ootball league table - add data (C)
- trying to make a "Do While" loop; loop (C++)
- SQL Database loop (C#)
- while loop (C)
- While loop not ending when reading from file (C++)
- code seems to stop executing (C++)
- do while loop - not stopping!! (Java)
- Problem with while loop... probably common (C++)
Other Threads in the C++ Forum
- Previous Thread: Function 'initgraph' should have a prototype
- Next Thread: Program on strings - Can anyone solve this program?
| Thread Tools | Search this Thread |
api array arrays based binary c++ c/c++ calculator char char* class classes code coding compile console conversion convert count database delete deploy desktop developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp iamthwee ifstream input int java lib linkedlist linker linux list loop looping loops map math matrix memory multiple news number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings temperature template templates test text text-file tree unix url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets





