Kezdőoldal » Számítástechnika » Programozás » Nem megfelelően működik a...

2105as kérdése:

Nem megfelelően működik a függvényem, mi lehet a baja? (c#)

Figyelt kérdés

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ó.


2017. ápr. 13. 21:55
1 2
 1/13 A kérdező kommentje:
az if-eknél a darabszam után dupla = jel van, csak itt elégé össz folyt.
2017. ápr. 13. 21:56
 2/13 anonim ***** válasza:

Miért a darabszámot változatod?

Elég lenne mindenhova egy return.

2017. ápr. 13. 22:05
Hasznos számodra ez a válasz?
 3/13 A kérdező kommentje:
Most ezt nem értem.
2017. ápr. 13. 22:10
 4/13 A kérdező kommentje:
ha az if után csak retunrn írok akkor csak az "a" értéket adja vissza, amit nekem nem jó.
2017. ápr. 13. 22:12
 5/13 anonim ***** válasza:

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.

2017. ápr. 13. 22:12
Hasznos számodra ez a válasz?
 6/13 A kérdező kommentje:
Hát lehet, hogy fura de a feladat szövege így kéri akkor ez van .
2017. ápr. 13. 22:14
 7/13 A kérdező kommentje:
ja, akkor ha 3 írok ak a darabszam értéke nyilván megváltozik és tovább fut a program, azt hittem leáll (mivel az "a" ==3 -->a többi feltétel sose teljesül csak én ugyan azt a változót használtam és az értéke megváltozott) de igazad van :)
2017. ápr. 13. 22:16
 8/13 sharkxxx ***** válasza:

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;

}

2017. ápr. 13. 22:17
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

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.

2017. ápr. 13. 22:18
 10/13 A kérdező kommentje:
result azt mit csinál ?
2017. ápr. 13. 22:19
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!