Zdravím, potřeboval bych poradit, proč mám tenhle kód špatně. Udělal jsem program na výpočet BMI a zjištění jak na tom jste, ale program vypočítá pouze BMI a dál se nedostane. Pokud by jste měli lepší nápad jak to napsat tka ho prosím napište. Jsem úplný začátečník, je mi 15 let a než vejdu na střední tak bych chtěl aspoň něco už zvládat, díky :D.
Zde he kód:
#include <iostream>
using namespace std;
int main()
{
float vyska;
int vaha;
int vek;
int BMI;
int i=0;
cout << "Zdravim te";
cout << "\nZde napis svuj vek: ";
cin >> vek;
cout << "\nZde napis svoji vahu v kilogramech: ";
cin >> vaha;
cout << "\nZde napis svoji vysku v metrech: ";
cin >> vyska;
cout << "\nVase vaha je: " << vaha << " kg, vase vyska je: " << vyska << " m, vas vek je: " << vek << "let";
BMI = vaha / ( vyska * vyska );
cout << "\n\nVase BMI je: " << BMI ;
while (BMI>18)
i++;
while (BMI>25)
i++;
while (BMI>30)
i++;
while (BMI>35)
i++;
while (BMI>40)
i++;
while (i=0)
cout << "Jsi podvyziveny!!";
while (i=1)
cout << "Optimalni vaha";
while (i=2)
cout << "mel by si se sebou neco delat!";
while (i=3)
cout << "Obezita I.";
while (i=4)
cout << "Obezita II.";
while (i=5)
cout << "Obezita III.";
cin.get();
cin.get();
return 0;
}
Fórum › C / C++
Žádost o radu
hele clovece nwm jak ty ale me se nelibi to while
cout << "\n\nVase BMI je: " << BMI <<endl;// jako \n ale nem,usi davat uvozovky
if (BMI<=18)
i=0;
if (BMI>18 && BMI<=25)
i=1;
if (BMI>25 && BMI<=30)
i=2;
if (BMI>30 && BMI<=35)
i=3;
if (BMI>35 && BMI<=40)
i=4;
if(BMI>40)
i=5;
if (i==0)
cout << "Jsi podvyziveny!!";
if (i==1)
cout << "Optimalni vaha";
if (i==2)
cout << "mel by si se sebou neco delat!";
if (i==3)
cout << "Obezita I.";
if (i==4)
cout << "Obezita II.";
if (i==5)
cout << "Obezita III.";
cin.get();
cin.get();
return 0;
}
takze while jsem upravil na if jinak by se to porad opakovalo a i++ jsem naradil i=x protozer by pak bylo vse 1 a to bylo spatne a pak jsem i=1 nahradil i==1 jinak i= jhe prirazeni coz priradi hodnotu coz by bylo vzdy pravdive a rpovedlo se to co je v tom if a este abych nezapomel && spojuje prikazy a je to skusim prelozit do textu toto:
if (BMI<=18)
i=0;
if (BMI>18 && BMI>=25)
i=1;
je neco jako : kdyz se BMi rovna 18 nebo je mensi i se rovna 0 kdyz je BMI vetsi nez 18 a mensi nebo se rovna 25 i je 1 a tak dale snazil jsem se ti to vysvetlit protoze si rikal ze si zacatecnik a pokud tusim a ctes knizku kterou myslim tak si se asi k if nedostal ale to poznas snad to prelouskas jsem unavenej a sotva vidim tak se omlouvam za pravopisny chyby
No neviem nakoľko si unavený, ale toto
if (BMI>18 && BMI>=25)
je divné :-/A všetky podobné kúsky.
Podmienka bude pravdivá iba ak
(BMI>=25)
A v takýchto konštrukciách sa používa if - else if- else, aby to zbytočne netestovalo každú podmienku. Teda pokiaľ to neprejde všetky vetvy.
EDIT: No niečo na ukážku :-)
#include <iostream>
using namespace std;
int main(void) {
float vyska;
int vaha;
int vek;
int BMI;
cout << "Zdravim te";
cout << "\nZde napis svuj vek: ";
cin >> vek;
cout << "\nZde napis svoji vahu v kilogramech: ";
cin >> vaha;
cout << "\nZde napis svoji vysku v metrech: ";
cin >> vyska;
cout << "\nVase vaha je: " << vaha << " kg, vase vyska je: " << vyska << " m, vas vek je: " << vek << "let";
BMI = (int)(vaha / ( vyska * vyska ));
cout << "\n\nVase BMI je: " << BMI ;
if(BMI>18)
cout << "Optimalni vaha";
else if(BMI>25)
cout << "mel by si se sebou neco delat!";
else if(BMI>30)
cout << "Obezita I.";
else if(BMI>35)
cout << "Obezita II.";
else if(BMI>40)
cout << "Obezita III.";
else
cout << "Jsi podvyziveny!!";
cin.get();
cin.get();
return 0;
}
To Datlik : Jestli už jsi opravil ty podmínky, tak ano. Ale máš to dlouhé a složité. Můžeš to zkrátit a zjednodušit. Jak? Nejrpve přiřadíš hodnotu do proměnné i a tu pak testuješ a podle toho vypisuješ. Co místo přiřazování hodnoty do proměnné i rovnou vypisovat uživatelovi zprávu?
Moc vám děkuji, ráno sem si ještě pročítal znovu 3. lekci C++ a už v tom mám konečně jasno :). Díky moc.
to m->29:
Tobě hlavně dík za ten kód podle kterého jsem pochopil jak na to :), ale nefachal přesně, pokud si měl BMI větší než 18 tak si byl v normě :), tak sem trošku poupravil konec :
if(BMI>40)
cout << " Obezita III.";
else if(BMI>35)
cout << " Obezita II.";
else if(BMI>30)
cout << " Obezita I.";
else if(BMI>25)
cout << " Nadvaha";
else if(BMI>18)
cout << " Jsi v norme";
else
cout << " Anorektik!";
Teďka to fachá jak má :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Kostka - žádost o radu — založil Kamil
Zadost o radu pri rozrezani a kodovani dizajnu — založil raddino
Zadost o pomoc (H8S) — založil Maikee
Žádost o pomoct morseovka — založil Morseovka
Žádost o pomoc s webem — založil BloodRings
Moderátoři diskuze