Největší hodnota

Třetí vzor hledá největší hodnotu. Představte si, že procházíte hromádku písemek a hledáte tu nejlepší. Vezmete do ruky první písemku. Pak se díváte na ostatní jednu po druhé, a kdykoli je některá lepší než ta, kterou držíte, vezmete si místo ní tu lepší. Na konci držíte nejlepší písemku. V kódu je písemka v ruce proměnná:

std::vector<int> vysledky = {72, 45, 90, 38, 64};
int nejvyssi = vysledky[0];
for (int vysledek : vysledky) {
    if (vysledek > nejvyssi) {
        nejvyssi = vysledek;
    }
}
std::cout << "Nejvíc bodů: " << nejvyssi << std::endl;
Nejvíc bodů: 90

Proměnná nejvyssi začíná prvním prvkem. Cyklus s ní pak porovná každý výsledek: 72 není větší než 72, 45 také ne, ale 90 ano, takže se nejvyssi změní na 90. Ani 38, ani 64 nejsou větší než 90, a tak 90 zůstane až do konce.

Proč nezačít nulou? Protože 0 nemusí být mezi hodnotami. Kdyby byly všechny hodnoty záporné, třeba zimní teploty {-5, -2, -8}, zůstala by počáteční 0 největší a program by vypsal 0, tedy teplotu, která ve vektoru vůbec není. První prvek je vždycky bezpečný začátek, pokud vektor není prázdný.

Nejmenší hodnotu najdete stejně, jen místo > použijete <.

Někdy porovnáváte jednu věc, ale chcete si zapamatovat jinou. Když hledáte nejdelší jméno, porovnáváte délky jmen, ale ukládáte si samotné jméno:

std::vector<std::string> jmena = {"Eva", "Maximilian", "Adam"};
std::string nejdelsi = jmena[0];
for (std::string jmeno : jmena) {
    if (jmeno.size() > nejdelsi.size()) {
        nejdelsi = jmeno;
    }
}
std::cout << "Nejdelší jméno: " << nejdelsi << std::endl;
Nejdelší jméno: Maximilian

Pokyny

Vektor ceny obsahuje ceny sluchátek v e-shopu. Vytvořte proměnnou nejvyssi typu int s první cenou, ceny[0].

Projděte ceny cyklem, a kdykoli je cena větší než nejvyssi, uložte ji do nejvyssi. Za cyklem vypište výsledek jako Nejdražší: 2499.

Stejným způsobem najděte cenu nejlevnějších sluchátek: s proměnnou nejnizsi, která začíná první cenou, a s < místo >. Výsledek vypište jako Nejlevnější: 179.

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/13