C#-ban hogy oldhatom meg?
Írjunk programot, mely a testsúly és a testmagasság
alapján meghatározza a testtömegindexet, és kiírja, hogy milyen testsúly osztályba
tartozik az adott illető. a testtömeg osztályokat meghatározhatjuk tetszőlegesen,
de alapul vehetünk létező osztályozásokat is.
Ez a feladat.
Nos,én itt tartok:
static void Main(string[] args)
{
Console.WriteLine("Ez a program kiszámítja a testtömeg és a testmagasság alapján a testtömeg indexet.");
Console.WriteLine();
Console.WriteLine("Hány kiló vagy?:");
string s = Console.ReadLine();
int kilo = Convert.ToInt32(s);
Console.WriteLine("Milyen magas vagy?(Kérlek, méterben add meg):");
string s2 = Console.ReadLine();
double magassag = Convert.ToInt32(s2);
double testtomegindex = kilo / magassag*magassag;
Console.WriteLine("A te testtömegindexed:" + testtomegindex);
if (kilo<16)
{
Console.WriteLine("Te súlyosan sovány vagy!Azonnal fordulj orvoshoz.");
Console.ReadKey();
}
if (kilo <17 )
{
Console.WriteLine("Mérsékelten sovány vagy.");
Console.ReadKey();
}
Alapvető problémám,hogy a testméretet nem tudom megadni jelenleg mondjuk úgy,hogy az 1.75 legyen. enélkül pedig értelmetlen a dolog.A másik dolog,hogy találtam egy táblázatot,mely leírja a testömegosztályokat. Viszont azt hogy tudom megadni,hogy ha a kiló 16-16.9 között van?Tehát mit kellene írjak az if(kilo után?
Köszönöm,aki segít.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
double magassag = Convert.ToInt32(s2);
nezd meg megegyszer, amúgy miért nem kéred be akkor cm-ben?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Console.WriteLine("Weight in kg:");
double weight = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Height in cm:");
double height = Convert.ToInt32(Console.ReadLine());
double bmi = weight / (Math.Pow( height/100 ,2));
Console.Write("BMI: " + bmi + " ");
if (bmi < 18){
Console.Write("Underweight");
}else if(bmi > 25){
Console.Write("Overweight");
}else{
Console.Write("Normal");
}
Console.ReadKey();
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Első válaszban a probléma.
Másodikban ugyanúgy nem tudnád pl 1.75-nek megadni.
Sima double-vel már próbáltam,akkor sem működött.
System.FormatException: 'Input string was not in a correct format.'
Ezt írja ki a második kódot is kipróbáltam.
Pl 1.75-öt nem akar elfogadni,kivág a windowsra hibával.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Nem értem, mit értesz sima double alatt.
Convert.ToInt32 mivé alakítja a stringet?
Ezen gondolkozz.
Direkt nem akarom egyébként megmondani pontosan. :)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!