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ů: 3Počí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: 3Jeden 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.
Jak psát:
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
8/12