Známky
Ke každému průměru patří známka. Učitelka ji dává takto:
- průměr 45 a víc: 1
- 38 a víc: 2
- 30 a víc: 3
- 20 a víc: 4
- méně než 20: 5
Na výběr z několika možností máte else if. Dejte ho do funkce, která dostane průměr a vrátí známku. Funkce může mít víc příkazů return a podmínka rozhodne, který se provede. Třeba vstupné do kina podle věku:
#include <stdio.h>
int vstupne(int vek) {
if (vek < 15) {
return 100;
} else if (vek < 65) {
return 180;
} else {
return 120;
}
}
int main(void) {
printf("%d\n", vstupne(10));
printf("%d\n", vstupne(30));
printf("%d\n", vstupne(70));
return 0;
}100
180
120Na pořadí podmínek záleží. Program je zkouší shora dolů a provede jen první, která platí. Každá další se tedy zkouší, jen když žádná předchozí neplatila. Desetiletý splňuje i vek < 65, ale k té podmínce se program vůbec nedostane. Ve funkci znamka() proto začněte nejvyšší hranicí. Kdyby první podmínka byla prumer_bodu >= 20, platila by i pro Filipa s průměrem 48.3 a ten by dostal čtyřku.
Pozor i na hranice: průměr přesně 38 je ještě dvojka, takže podmínka je prumer_bodu >= 38, ne prumer_bodu > 38.
Známka je celé číslo, takže ji vypíšete pomocí %d, ne %c. To by místo číslice 2 vypsalo znak s kódem 2, který na obrazovce není vidět.
Průměr budete na každém řádku potřebovat dvakrát: pro výpis i pro známku. Uložte ho proto do proměnné, třeba double prumer_bodu = prumer(zaci[i]);, a funkce prumer() se zavolá jen jednou.
Jak psát:
Pokyny
Nad funkci vypis_vysledky() napište funkci int znamka(double prumer_bodu), která vrátí 1 pro průměr 45 a víc, 2 pro 38 a víc, 3 pro 30 a víc, 4 pro 20 a víc a jinak 5.
Ve funkci vypis_vysledky() uložte průměr žáka do proměnné prumer_bodu a na konci řádku vypište průměr, dvě mezery a známku, kterou vrátí znamka(): printf("%6.1f %d\n", prumer_bodu, znamka(prumer_bodu));. Program vypíše:
VÝSLEDKY Z MATEMATIKY
Adam 42 38 45 41.7 2
Ema 36 33 38 35.7 3
Filip 48 50 47 48.3 1
Jakub 14 22 17 17.7 5
Lenka 27 40 41 36.0 3Pokud má Filip čtyřku, zkontrolujte pořadí podmínek: nejvyšší hranice patří na začátek.
Začněte programovat zdarma
3/7