Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
BF summer
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 DB
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
Posix
Člen
Avatar
Posix: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
Proč to dělat jednoduše, když to jde složitě.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.