Ezt hogy kellene megoldani?
Már 2 órája próbálkozok de nem nagyon akar összejönni a feladat megoldása:
Készítsünk programot, amely bekér egy összeget,
majd kiírja, hogy azt hogyan lehet a lehető legkevesebb pénzérméből összeállítani.
16.F
próbáltam egy for ciklusba rakni az egészet de feladtam így most 6x van bemásolva az a pár sor
igen csak most esik le hogy a
for (int i = 0; i < 50000; i++)
..{
.. ..if (p >= ermek[0])... while-al mennyivel egyszerűbb lett volna.. na mind1 ezt elfelejtettem
Ahogy látom, működik, és alaposan megdolgoztál vele, illendő, hogy én is közöljem a saját próbálkozásomat. Én csak amatőr módon programozgatok ugyan, de ha marhaságot írtam, majd javítanak a kollégák:
Volna még egy-két megjegyzésem.
1. A goto használata manapság a legritkább esetben szerencsés. Bizonyos szint fölött lehet esetleg valami bravúros huszárvágásra használni, de egyelőre jobb, ha szigorúan kerülendőként tartod számon.
2. Ha (igen helyesen) vállalkozol arra, hogy kiszűrd az adatbeviteli hibákat, próbálj lehetőleg mindent átgondolni. Rendben, hogy még nem tudtad, hogyan kezeld, ha a program nem számot vagy éppenséggel üres Entert kap, de szám esetén se sok haszna van a feladat szempontjából lényegtelen nulla, vagy a végképp értelmetlen mínusz számokkal is végigjátszani a teendőket, és a nagy semmi kiírásával végezni, ahelyett, hogy új összeget kérnél be -- a goto-s változat esetén így:
if(p <1 || p > 1000000) goto megadas;
3. Ha már kötelezően egymillióban limitálod a bevihető értéket mi értelme van a ciklusban ötvenezres határt beállítanod, amikor i értéke garantáltan nem lehet 5000-nél nagyobb? Ez itt semmi problémával nem jár, de ki tudja: Lehet, hogy valaha egy hasonló pongyolaság miatt szalad majd egy változó olyan értékre, ami nehezen felderíthető hibákat okoz. Ha már módodban áll pontosan megadni, akkor tedd is meg.
4. Hogyha valami kódrészlet sokszor ismétlődik a programodban, akkor ébredjen fel benned a gyanú, hogy ciklusba tudod szervezni. A programodban hatszor ismételsz meg egyetlen if-blokkot, pedig csak annyi történik, hogy egyazon tömbök indexe mindig lép egyet-egyet. Ez pontosan ugyanaz, mintha egyetlen ilyen blokkot beraknál egy ciklusba, és a kérdéses tömböket a ciklusváltozóval indexelnéd.
Megpróbáltam a programodat a fentiek szerint módosítani (a logikáját és a goto-t is békén hagytam), most így néz ki:
Oszt' mér nem link a link? Megpróbálom még egyszer:
Na, még egy változat az általad javasolt while-ciklussal, aztán megyek aludni...
További 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!