Diskuze: Druhé největší čílo
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Najdeš největší číslo a uložíš si jeho index. Druhé největší pak najdeš jako největší ze zbytku čísel.
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.
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;
}
Zobrazeno 5 zpráv z 5.