Nem megfelelően működik a függvényem, mi lehet a baja? (c#)
A feladat:
Határozza meg, hogy a bekért darabszámot vásárolva egy termékből mennyi a fizetendő
összeg! A feladat megoldásához készítsen függvényt ertek néven, amely a darabszámhoz
a fizetendő összeget rendeli!
az írt függvényem :
static int ertek(int darabszam)
{
if (darabszam == 1)
darabszam = 500;
if (darabszam == 2)
darabszam = 500 + 450;
if (darabszam == 3)
darabszam = 500 + 450 + 400;
if (darabszam >= 4)
darabszam = (500+450+400) + (((darabszam-3))*400) ;
return darabszam;
}
és a főprogramban lévő kódom:
( static void Main(string[] args))
Console.Write("\nKérem adj meg egy darabszámot: ");
int a = Convert.ToInt32(Console.ReadLine());
int tetel = a;
Console.WriteLine("\n6.feladat\n");
int fizet = ertek(a);
Console.WriteLine("{0} darab vételekor fizetendő: {1}",tetel,fizet);
Mikor a beírt szám az 4 vagy annál nagyobb jó eredményt ad vissza ,de ha 1,2 vagy 3 akkor elég nagy számot ad vissza amit nem jó.
Miért a darabszámot változatod?
Elég lenne mindenhova egy return.
Igen, elég fura, hgoy egy változóban aminek a neve az hogy darabszám egy fizetendő összeget tárolsz...
Amógy pl 3 esetén a darabszámot beállítod 1350-re.
És mivel ez nagybb mint 4, hozzáadsz 1347*400-at.
A proggi azt csinálja amit beírtál, de sztem te nem ezt akartad...
Szóval vagy simán return mindenhova vagy else if-eket írj.
Két hibát követtél el.
- Egy összefüggő feltételt kellett volna írnod. De te 4 különálló feltételt írtál. Ez a 4 feltétel egymás után meghívódott. Ezért adott vissza túl nagy számot amikor 1, 2 vagy 3 volt a paraméter.
- Nem használtál külön változót az eredménynek. így a megváltozott értéket ellenőrizte a következő feltételben.
// így kell helyesen megírni:
static int ertek(int darabszam)
{
int result = 0;
if (darabszam == 1) {
result = 500;
} else
if (darabszam == 2) {
result = 500 + 450;
} else
if (darabszam == 3) {
result = 500 + 450 + 400;
} else
if (darabszam >= 4) {
result = (500+450+400) + (((darabszam-3))*400) ;
}
return result;
}
Az első és a második válaszoló is azt írtam elég ha return-t írok az if-ek helyett, de az hogy néz ki ?
Ma ismerkedtem meg a függvényekkel nem csináltam még ilyet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!