Kk thanks

Blogs > konadora |
konadora
![]()
Singapore66201 Posts
Kk thanks ![]() | ||
qrs
United States3637 Posts
| ||
fusionsdf
Canada15390 Posts
On July 10 2009 01:47 Cambium wrote: You need to figure out the inequalities... you have 0 < a < 20 and 20 < a < 25, i.e. you don't cover the case where a == 20. #include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; // assuming you can't weight 0 kg and have 0 cm height ( h = 0 actually give you division by zero exception if( w <= 0 || h <= 0 ) { cout << "Invalid input." << endl; return 0; } else { a = (w/(h*h)); cout << "Your Body Mass Index is " << a << endl; } if ( a > 0 && a < 20 ) cout << "You have a low BMI." << endl; else if ( a > 20 && a < 25 ) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } ewww. I was always taught multiple return statements like that are frowned upon. to be honest, I'm not exactly sure what's considered acceptable in a professional environment. The code (if someone else is wondering) will still work perfectly, its just a matter of style. | ||
Cambium
United States16368 Posts
| ||
konadora
![]()
Singapore66201 Posts
#include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; if (w <= 0 || h <= 0){ cout << "Invalid input." << endl; return 0; } else { a = (w/(h*h)); cout << "Your Body Mass Index is " << a << "." << endl; } if ( a > 0 && a < 20 ) cout << "You have a low BMI." << endl; else if ( a > 20 && a < 25 ) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } And still, if I input two negative values, "You have a low BMI." still shows. What's the problem here? | ||
Cambium
United States16368 Posts
| ||
konadora
![]()
Singapore66201 Posts
Oh, and happy birthday ![]() | ||
Cambium
United States16368 Posts
| ||
Cambium
United States16368 Posts
| ||
konadora
![]()
Singapore66201 Posts
#include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; a = (w/(h*h)); if (w > 0, h > 0) cout << "Your Body Mass Index is " << a << endl; else cout << "Invalid input." << endl; if (0 < a < 20, w > 0, h > 0) cout << "You have a low BMI." << endl; else if (20 < a < 25, w > 0, h > 0) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } | ||
GogoKodo
Canada1785 Posts
I guess you maybe just pasted the wrong source? | ||
konadora
![]()
Singapore66201 Posts
| ||
GogoKodo
Canada1785 Posts
| ||
Cambium
United States16368 Posts
I'm amazed at its ability to interpret equalities and inequalities... The problem with your code is that you don't terminate when you detected invalid inputs. The program continues to run and since two negatives give you a positive, you get "You have a low BMI". After you terminate, you no longer need to check w > 0 and h > 0, as you have already done so. #include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; a = (w/(h*h)); if (w > 0, h > 0) cout << "Your Body Mass Index is " << a << endl; else { cout << "Invalid input." << endl; return 0; } if (0 < a < 20 cout << "You have a low BMI." << endl; else if (20 < a < 25 cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } | ||
konadora
![]()
Singapore66201 Posts
I was wondering but, it's okay to have many 'return 0; ' statements? | ||
GogoKodo
Canada1785 Posts
| ||
Cambium
United States16368 Posts
There is no way you get anything beyond "invalid input" if you ran the code below... if (w <= 0 || h <= 0){ cout << "Invalid input." << endl; return 0; } catches any negative inputs. + Show Spoiler + #include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; if (w <= 0 || h <= 0){ cout << "Invalid input." << endl; return 0; } else { a = (w/(h*h)); cout << "Your Body Mass Index is " << a << "." << endl; } if ( a > 0 && a < 20 ) cout << "You have a low BMI." << endl; else if ( a > 20 && a < 25 ) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } | ||
GogoKodo
Canada1785 Posts
| ||
Cambium
United States16368 Posts
#include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; if (w <= 0 || h <= 0){ cout << "Invalid input." << endl; } else { a = (w/(h*h)); cout << "Your Body Mass Index is " << a << "." << endl; if ( a > 0 && a < 20 ) cout << "You have a low BMI." << endl; else if ( a > 20 && a < 25 ) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; } return 0; } | ||
konadora
![]()
Singapore66201 Posts
Compiler = Visual C++ 2008 Express Edition I'm using this one #include <iostream> using namespace std; int main() { double w, h; double a; cout << "Please enter your weight (in KG) and height (in meters)." << endl; cin >> w >> h; if (w <= 0 || h <= 0){ cout << "Invalid input." << endl; return 0; } else { a = (w/(h*h)); cout << "Your Body Mass Index is " << a << "." << endl; } if ( a > 0 && a < 20 ) cout << "You have a low BMI." << endl; else if ( a > 20 && a < 25 ) cout << "You are within the healthy BMI range. Congratulations!" << endl; else cout << "You have exceeded the healthy BMI range." << endl; return 0; } The one I posted after that was the original before I modified it | ||
| ||
![]() StarCraft 2 StarCraft: Brood War Counter-Strike Super Smash Bros Heroes of the Storm Other Games summit1g3062 Grubby2345 FrodaN1368 C9.Mang0161 Trikslyr130 Livibee82 Mew2King69 Nathanias33 Chillindude23 ViBE22 rGuardiaN20 Kaelaris9 Organizations
StarCraft 2 • davetesta74 StarCraft: Brood War• StrangeGG ![]() • LaughNgamezSOOP • sooper7s • AfreecaTV YouTube • intothetv ![]() • Migwel ![]() • Kozan • IndyKCrew ![]() Dota 2 League of Legends Counter-Strike Other Games |
Replay Cast
The PondCast
RSL Revival
Maru vs SHIN
MaNa vs MaxPax
Maestros of the Game
Classic vs TriGGeR
Reynor vs SHIN
OSC
MaNa vs SHIN
SKillous vs ShoWTimE
Bunny vs TBD
Cham vs TBD
RSL Revival
Reynor vs Astrea
Classic vs sOs
Maestros of the Game
Serral vs Ryung
ByuN vs Zoun
BSL Team Wars
Team Bonyth vs Team Dewalt
CranKy Ducklings
RSL Revival
GuMiho vs Cham
ByuN vs TriGGeR
[ Show More ] Cosmonarchy
TriGGeR vs YoungYakov
YoungYakov vs HonMonO
HonMonO vs TriGGeR
Maestros of the Game
Solar vs Bunny
Clem vs Rogue
[BSL 2025] Weekly
RSL Revival
Cure vs Bunny
Creator vs Zoun
Maestros of the Game
Maru vs Lambo
herO vs ShoWTimE
BSL Team Wars
Team Hawk vs Team Sziky
Sparkling Tuna Cup
Monday Night Weeklies
|
|