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
120

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

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  3

Pokud má Filip čtyřku, zkontrolujte pořadí podmínek: nejvyšší hranice patří na začátek.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

3/7