Počítání

Druhý vzor počítá: kolik prvků splňuje nějakou podmínku? Vypadá podobně jako sčítání, jen místo prvku přičítáte 1, a to jen tehdy, když to dovolí if. Tento program spočítá horké dny v jednom týdnu:

int teploty[] = {18, 24, 27, 15, 31, 22, 29};
int pocet = sizeof(teploty) / sizeof(teploty[0]);
int horke_dny = 0;
for (int i = 0; i < pocet; i++) {
    if (teploty[i] >= 25) {
        horke_dny++;
    }
}
printf("Horkých dnů: %d\n", horke_dny);

Program vypíše:

Horkých dnů: 3

Počítadlo horke_dny začíná před cyklem na 0. Cyklus se podívá na každou teplotu a if rozhodne, jestli ji započítat. horke_dny++ se provede jen pro 27, 31 a 29, takže na konci má počítadlo hodnotu 3. Všimněte si dvou párů složených závorek: horke_dny++ je v bloku if, který je v bloku cyklu. Výsledek zase vypíšete až za cyklem.

Nepleťte si ta dvě čísla. pocet je počet všech prvků, tedy 7, a cyklus ho potřebuje, aby prošel všechny. horke_dny je počet prvků, které splňují podmínku, a to je výsledek.

Podmínka může o prvku zjišťovat cokoli. Tento cyklus spočítá, kolikrát padla na kostce šestka:

int hody[] = {6, 2, 6, 4, 1, 6, 3};
int pocet = sizeof(hody) / sizeof(hody[0]);
int sestky = 0;
for (int i = 0; i < pocet; i++) {
    if (hody[i] == 6) {
        sestky++;
    }
}
printf("Šestky: %d\n", sestky);

Program vypíše:

Šestky: 3

Jeden cyklus může počítat i několik věcí najednou, každou ve vlastním počítadle. S if a else se každý prvek započítá právě jednou, buď do jednoho, nebo do druhého počítadla.

Pokyny

V poli vysledky jsou počty bodů z testu. V testu uspěje, kdo má 50 a více bodů. Spočítejte, kolik studentů uspělo: vytvořte proměnnou uspeli s hodnotou 0, projděte vysledky cyklem a pro každý výsledek, který je alespoň 50, zvyšte uspeli o 1. Za cyklem vypište výsledek jako Uspěli: 5.

Ve stejném cyklu spočítejte i studenty, kteří neuspěli: před cyklem vytvořte proměnnou neuspeli s hodnotou 0 a zvyšujte ji ve větvi else. Za cyklem vypište na další řádek Neuspěli: 3.

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

8/12