Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
DB
Neregistrovaný
Avatar
DB:24.10.2013 15:30

Ahojte,

mám takový problém a nemůžu se pohnout dále tak bych prosil o radu. Potřeboval bych nalézt druhé největší číslo, např. int moje_pole[5] = {5, 8, 9, 1, 3};
Vím jak si poradit s nejmenším i největším. Pokud mne někdo nakopne budu rád :). Nejlepší by to bylo přes cyklus a ne za pomocí if-else to bych udělal taky :) .

Díky za rady.

 
Odpovědět
24.10.2013 15:30
Avatar
Odpovídá na
Zdeněk Pavlátka:24.10.2013 16:02

Najdeš největší číslo a uložíš si jeho index. Druhé největší pak najdeš jako největší ze zbytku čísel.

Nahoru Odpovědět
24.10.2013 16:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Neaktivní uživatel:24.10.2013 16:05
int moje_pole[] = {8, 1, 8};
int max = INT_MIN;
int max2 = INT_MIN;
for (int i = 0; i <sizeof(moje_pole)/sizeof(*moje_pole); i++)
{
        if (moje_pole[i] > max)
        {
                max2 = max;
                max = moje_pole[i];
        }
        else if (moje_pole[i] > max2 && moje_pole[i] < max)
        {
                max2 = moje_pole[i];
        }
}

Pokud jsou v celém poli stejné čísla, tak to vrátí INT_MIN.

Nahoru Odpovědět
24.10.2013 16:05
Neaktivní uživatelský účet
Avatar
vitamin
Člen
Avatar
vitamin:24.10.2013 17:47

Staci pole zoradiť a vypísať čo chceš:

#include <iostream>
#include <algorithm>


int main(){
        using namespace std;
        int pole[] = {10, 3, -3 , 0, 10, 0, 7};

        sort(begin(pole), end(pole));
        cout << "2 najväčšie číslo: " << end(pole)[-2] << endl;


        auto e = unique(begin(pole), end(pole));
        cout << "2 najväčšie unikátne číslo: " << e[-2] << endl;

        return 0;
}
 
Nahoru Odpovědět
24.10.2013 17:47
Avatar
DB
Neregistrovaný
Avatar
DB:24.10.2013 23:08

Díky kluci nějak jsem to podle toho spíchl, ale stejně bych si to vylepšil trošku. Tak by mě zajímalo jak by se dalo uložit index od největšího čísla. Ten postup co píše nuz15.

 
Nahoru Odpovědět
24.10.2013 23:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.