Ezt hogyan kéne így megoldani?
Írj programot, mely érdemjegyeket olvas be a standard inputról, majd kiírja, hogy melyik jegyből hány darab született! A jegyek szóközzel vannak egymástól elválasztva. Nincs végjel, egészen a bemenet végéig kell olvasni.
A 3 2 3 1 5 2 3 1 5 bemenet hatására az program az alábbi összegzést írja a standard outputra:
5: 2 db
4: 0 db
3: 3 db
2: 2 db
1: 2 db
Feltételezheted, hogy a bemeneten nem érkeznek 1-nél kisebb vagy 5-nél nagyobb számok. A megoldásban tilos a switch vagy if kulcsszavak használata.
Ez lenne a feladat. Mégis hogyan oldjam meg, ha nem lehet benne if-et használni? Mert így nagyon elakadtam.
Milyen nyelven? Alapvetően bármely nyelven kb. az az algoritmus:
bejön a beolvasott szám legyen ez x; van egy 6 elemű tömb (egyszerűbb így) db amiben vannak az összegek.
1. ciklus: feltölti a 6 elemű tömböt 0-val pl:
for i=0 tól 5 ig {db[i]=0}
2. ciklus beolvas a bemenetről egy darab számot ameddig jön szám és
x <- beolvasott szám
majd db[x] legyen egyenlő db[x]+1-el (a beolvasott számot használod tömb indexnek)
Majd a végén a 3. ciklus kiírtja a db[x] tömb elemeit
for i=1 től 5-ig {kiirat db[i]}
Ha olyan a nyelved, hogy a tömböt inicializálja és mindig 0 lesz benne akkor az első ciklus kihagyható.
Valahogy így kéne kinéznie? Már nagyon fáradt vagyok ma, de még meg kéne ezt csinálnom, úgyhogy bocsi, ha már nem forog rendesen az agyam.
Nem egészen... De az irány jó.
7. sor: nem kell.
8. sor: jegy[x]++; (és így C-sebb, de így is működik)
10. sor: vagy for, vagy az 5 db. printf; a for-os megoldás szebb, de ha kíirod akkor nem kell a for.
Tehát a./ változat:
10. sor (for i=1; i<=5; i++) { Megj.: fontos itt nem i=0-tól hanem 1-től
11. sor printf ("%d: %d\n", i, jegy[i]);
12. sor }
13. sortól 16. sorig törlendő
b. változat:
10. és 16. sor törlendő
és a 11. sortól printf ("5: %d\n",jegy[5]);
printf (4: %d\n",jegy[4]; és így tovább
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!