Počítání

Druhý vzor počítá: kolik čísel splňuje nějakou podmínku? Vypadá podobně jako sčítání, jen místo hodnoty přičítáte 1, a to jen tehdy, když to dovolí if.

Každý sedmý návštěvník muzea dostane pohlednici zdarma. Kolik pohlednic muzeum rozdá, když přijde 50 návštěvníků?

int pohlednice = 0;
for (int navstevnik = 1; navstevnik <= 50; navstevnik++) {
    if (navstevnik % 7 == 0) {
        pohlednice++;
    }
}
printf("Pohlednice: %d\n", pohlednice);
Pohlednice: 7

Počítadlo pohlednice začíná před cyklem na 0. Cyklus projde všechny návštěvníky a if rozhodne, jestli daného návštěvníka započítat: navstevnik % 7 == 0 platí, když je zbytek po dělení sedmi 0. pohlednice++ se provede jen pro návštěvníky 7, 14, 21, 28, 35, 42 a 49, takže na konci má počítadlo hodnotu 7. Výsledek zase vypíšete až za cyklem.

Všimněte si dvou párů složených závorek: pohlednice++ je v bloku if, který je v bloku cyklu. Když se pohlednice++ ocitne mimo if (ale pořád v cyklu), program započítá každého návštěvníka a vypíše Pohlednice: 50.

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ý návštěvník započítá právě jednou, buď do jednoho, nebo do druhého počítadla:

int pohlednice = 0;
int bez = 0;
for (int navstevnik = 1; navstevnik <= 50; navstevnik++) {
    if (navstevnik % 7 == 0) {
        pohlednice++;
    } else {
        bez++;
    }
}
printf("Pohlednice: %d\n", pohlednice);
printf("Bez pohlednice: %d\n", bez);
Pohlednice: 7
Bez pohlednice: 43

7 + 43 je 50: každý návštěvník je započítaný právě jednou. Takový součet počítadel je rychlá kontrola, že jste počítali správně.

Pokyny

Ulice má domy s čísly od 1 do POCET_DOMU. Domy s lichými čísly stojí na levé straně ulice, domy se sudými čísly na pravé. Spočítejte domy na levé straně: vytvořte proměnnou vlevo s hodnotou 0, projděte čísla od 1 do POCET_DOMU cyklem for a pro každé liché číslo zvyšte vlevo o 1. Číslo je liché, když je zbytek po jeho dělení dvěma roven 1. Za cyklem vypište výsledek jako Levá strana: 13.

Ve stejném cyklu spočítejte i domy na pravé straně: před cyklem vytvořte proměnnou vpravo s hodnotou 0 a zvyšujte ji ve větvi else. Za cyklem vypište na další řádek Pravá strana: 12.

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

6/11