| | |
Need help not allowing a negative number to be input
Please support our C++ advertiser: Intel Parallel Studio Home
Thread Solved |
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
I do not want a negative number input for radius, length, width, base, height. How would I do this. My code is below. It should be pretty self explanatory.
Thanks.
[CODE]
Thanks.
[CODE]
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cmath> using namespace std; int main () { double const pi=3.14159; int radius, length, width, base, height, choice; double area; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Calculate the Area of a Circle\n"; cout << "2. Calculate the Area of a Rectangle\n"; cout << "3. Calculate the Area of a Trainge\n"; cout << "4. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-4): "; cin >> choice; cout << "\n"; if (choice==1) {cout << "Please enter the radius of the circle: "; cin >> radius; area = radius * pi; cout << "The area of the circle is: " << area << endl;} else if (choice==2) {cout << "Please enter the length of the rectangle: "; cin >> length; cout << "Please enter the width of the rectangle: "; cin >> width; area = length * width; cout << "The area of the rectangle is: " << area << endl;} else if (choice==3) {cout << "Please enter the base length of the triangle: "; cin >> base; cout << "Please enter the height of the triangle: "; cin >> height; area = (base * height)/2; cout << "The area of the triangle is: " << area << endl;} else if (choice==4) {cout << "Thanks for trying the Geometry Calculator\n";} else {cout << "You can only select options 1-4, run the program again and select a option 1-4\n"; } return 0; }
Last edited by davids2004; Nov 17th, 2008 at 11:25 pm.
•
•
Join Date: Jan 2008
Posts: 3,803
Reputation:
Solved Threads: 501
Write a function that does not allow for negative input:
Call this function from main when you need non-negative integer input.
C++ Syntax (Toggle Plain Text)
int GetNonNegativeInteger () { int input; cin >> input; while (input < 0) { // display error message. // ask for input again } return input; }
Call this function from main when you need non-negative integer input.
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
•
•
•
•
Write a function that does not allow for negative input:
C++ Syntax (Toggle Plain Text)
int GetNonNegativeInteger () { int input; cin >> input; while (input < 0) { // display error message. // ask for input again } return input; }
Call this function from main when you need non-negative integer input.
Last edited by davids2004; Nov 18th, 2008 at 12:28 am.
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
Last edited by davids2004; Nov 18th, 2008 at 12:29 am.
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
•
•
•
•
Where should the function go or where should the function call go?
[CODE]
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cmath> using namespace std; int main () { double const pi=3.14159; int radius, length, width, base, height, choice; double area; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Calculate the Area of a Circle\n"; cout << "2. Calculate the Area of a Rectangle\n"; cout << "3. Calculate the Area of a Trainge\n"; cout << "4. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-4): "; cin >> choice; cout << "\n"; if (choice==1) {cout << "Please enter the radius of the circle: "; cin >> radius; while (radius<0) {cout << "Please enter a positive number: "; cin >> radius;} area = radius * pi; cout << "The area of the circle is: " << area << endl;} else if (choice==2) {cout << "Please enter the length of the rectangle: "; cin >> length; while (length<0) {cout << "Please enter a positive number: "; cin >> length;} cout << "Please enter the width of the rectangle: "; cin >> width; while (width<0) {cout << "Please enter a positive number: "; cin >> width;} area = length * width; cout << "The area of the rectangle is: " << area << endl;} else if (choice==3) {cout << "Please enter the base length of the triangle: "; cin >> base; while (base<0) {cout << "Please enter a positive number: "; cin >> base;} cout << "Please enter the height of the triangle: "; cin >> height; while (height<0) {cout << "Please enter a positive number: "; cin >> height;} area = (base * height)/2; cout << "The area of the triangle is: " << area << endl;} else if (choice==4) {cout << "Thanks for trying the Geometry Calculator\n";} else {cout << "You can only select options 1-4, run the program again and select a option 1-4\n"; } return 0; }
•
•
Join Date: Jan 2008
Posts: 3,803
Reputation:
Solved Threads: 501
#include <iostream> #include <cmath> using namespace std; int GetNonNegativeInteger () { int input; cin >> input; while (input < 0) { // display error message. // ask for input again } return input; } int main () { double const pi=3.14159; int radius, length, width, base, height, choice; double area; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Calculate the Area of a Circle\n"; cout << "2. Calculate the Area of a Rectangle\n"; cout << "3. Calculate the Area of a Trainge\n"; cout << "4. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-4): "; cin >> choice; cout << "\n"; if (choice==1) {cout << "Please enter the radius of the circle: "; radius = GetNonNegativeInteger (); area = radius * pi; cout << "The area of the circle is: " << area << endl;} else if (choice==2) {cout << "Please enter the length of the rectangle: "; length = GetNonNegativeInteger (); cout << "Please enter the width of the rectangle: "; width = GetNonNegativeInteger (); area = length * width; cout << "The area of the rectangle is: " << area << endl;} else if (choice==3) {cout << "Please enter the base length of the triangle: "; cin >> base; cout << "Please enter the height of the triangle: "; cin >> height; area = (base * height)/2; cout << "The area of the triangle is: " << area << endl;} else if (choice==4) {cout << "Thanks for trying the Geometry Calculator\n";} else {cout << "You can only select options 1-4, run the program again and select a option 1-4\n"; } return 0; }
See red. You would do the same for base and height in option number 3. Have you used functions before? You need to change the commented parts of the function.
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
Ok here is my final code. Cleaned it up a bit so it would not just say enter a positive number each time a negative number was entered
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <cmath> using namespace std; int main () { double const pi=3.14159; int radius, length, width, base, height, choice; double area; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Calculate the Area of a Circle\n"; cout << "2. Calculate the Area of a Rectangle\n"; cout << "3. Calculate the Area of a Trainge\n"; cout << "4. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-4): "; cin >> choice; cout << "\n"; if (choice==1) {cout << "Please enter the radius of the circle: "; cin >> radius; while (radius<0) {cout << "Negative radius not allowed, enter a positive radius: "; cin >> radius;} area = radius * pi; cout << "The area of the circle is: " << area << endl;} else if (choice==2) {cout << "Please enter the length of the rectangle: "; cin >> length; while (length<0) {cout << "Negative length not allowed, enter a positive length: "; cin >> length;} cout << "Please enter the width of the rectangle: "; cin >> width; while (width<0) {cout << "Negative width not allowed, enter a positive width: "; cin >> width;} area = length * width; cout << "The area of the rectangle is: " << area << endl;} else if (choice==3) {cout << "Please enter the base length of the triangle: "; cin >> base; while (base<0) {cout << "Negative base not allowed, enter a positive base: "; cin >> base;} cout << "Please enter the height of the triangle: "; cin >> height; while (height<0) {cout << "Negative height not allowed, enter a positive height: "; cin >> height;} area = (base * height)/2; cout << "The area of the triangle is: " << area << endl;} else if (choice==4) {cout << "Thanks for trying the Geometry Calculator\n";} else {cout << "You can only select options 1-4, run the program again and select a option 1-4\n"; } return 0; }
Last edited by davids2004; Nov 18th, 2008 at 12:44 am.
•
•
Join Date: Nov 2008
Posts: 43
Reputation:
Solved Threads: 0
•
•
•
•
#include <iostream> #include <cmath> using namespace std; int GetNonNegativeInteger () { int input; cin >> input; while (input < 0) { // display error message. // ask for input again } return input; } int main () { double const pi=3.14159; int radius, length, width, base, height, choice; double area; //Display the menu and get the user's choice cout << " Geometry Calculator \n\n"; cout << "1. Calculate the Area of a Circle\n"; cout << "2. Calculate the Area of a Rectangle\n"; cout << "3. Calculate the Area of a Trainge\n"; cout << "4. Quit\n"; cout << "\n"; cout <<"Enter your choice (1-4): "; cin >> choice; cout << "\n"; if (choice==1) {cout << "Please enter the radius of the circle: "; radius = GetNonNegativeInteger (); area = radius * pi; cout << "The area of the circle is: " << area << endl;} else if (choice==2) {cout << "Please enter the length of the rectangle: "; length = GetNonNegativeInteger (); cout << "Please enter the width of the rectangle: "; width = GetNonNegativeInteger (); area = length * width; cout << "The area of the rectangle is: " << area << endl;} else if (choice==3) {cout << "Please enter the base length of the triangle: "; cin >> base; cout << "Please enter the height of the triangle: "; cin >> height; area = (base * height)/2; cout << "The area of the triangle is: " << area << endl;} else if (choice==4) {cout << "Thanks for trying the Geometry Calculator\n";} else {cout << "You can only select options 1-4, run the program again and select a option 1-4\n"; } return 0; }
See red. You would do the same for base and height in option number 3. Have you used functions before? You need to change the commented parts of the function.
•
•
Join Date: Jan 2008
Posts: 3,803
Reputation:
Solved Threads: 501
•
•
•
•
We have not learned functions yet. What do you mean change the commented parts of the function. I redid some code a little different then what you showed and it works.
int GetNonNegativeInteger ()
{
int input;
cin >> input;
while (input < 0)
{
// display error message.
// ask for input again
}
return input;
}Change the red code to this:
C++ Syntax (Toggle Plain Text)
cout << "Negative number not allowed." << endl; cin >> input;
Which is what you have in your code, just slightly different each time, which is correct. If you are not going to use a function, doing it the way you did it is correct and is equivalent. When you learn functions, you'll probably do it the way I did it since you are doing the same thing five times. You did it right.
![]() |
Similar Threads
- memory management in wndows 2000 (Windows NT / 2000 / XP)
- Problems with displaying total payroll and allowing user to quit by entering a neg. (C++)
Other Threads in the C++ Forum
- Previous Thread: GCC Exception handling w/ threads
- Next Thread: complier needed
| Thread Tools | Search this Thread |
api array based binary c++ c/c++ calculator char char* class classes code coding compile console conversion 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 homeworkhelper iamthwee ifstream input int integer java linkedlist linker linux list loop looping loops map math matrix memory multiple news number numbertoword output parameter pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock wordfrequency wxwidgets






