Diskuze: Souhrn čísel z pole C
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Neregistrovaný

Zobrazeno 8 zpráv z 8.
//= 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.
Co takhle použít ikonku vložit kód?
A k tvé otázce: nejjednodužší(ale nejpomalejší )řešení je projít
postupně pole a pro každý nový prvek si spočítat, kolikrát se vyskytuje.
To si uložíš do pomocného pole. No a vypsat to snad zvládneš.
To pole si najprv zotried, mozes na to pouzit napr: http://en.cppreference.com/…orithm/qsort
Akonahle je zotriedene, tak vsetky rovnake cisla su umiestnene zasebou, takze sa daju lahko spocitat.
Predevsim dekuju za bleskovou odpoved.
A ted k veci.
Teoreticky chapu vysvetleni uzivatele nuz15 , ale prakticky ho
nedovedu provest.
V C delam teprve mesic. Nejvice bych ocenil, kdyby jste mi to nazorne
ukazal.
Pokud na to nemate cas , nevadi , i tak dekuji za odpoved.
To riesenie od nuz15 je na prvy pohlad jednoduche, ale ak nemas
naprogramovane asociativne pole tak to uz nie je tak jednoduche
Dal som ti zly link, tu je verzia pre C: http://en.cppreference.com/…orithm/qsort
Princip je nasledovny:
mas pole:
[3, 1, 2, 3, 1, 1, 2]
Po zotriedeni bude taketo:
[1, 1, 1, 2, 2, 3, 3]
Teraz staci prejst pole 1x a pocitat rovnake prvky ktore su vedla seba.
Prijdu si uplne jako hlupak, ale jak v praxi pocitat rovnake prvky vedle sebe ? a taky, ja mam dynamicke pole s nestalym poctem hodnot a kdyz pouziju navod, ktery jsi mi poslal /* za nějž děkuji, bude se hodit */ tak mi vypisuje i například 45 nul pred treba peti zadanymi hodnotami .
Pokud jde pouze o celá čísla, můžeš použít systém který používá
counting sort. Udělat si pole jehož velikost odpovídá rozsahu hodnoto prvků
v tom hlavním poli, to hlavní pole jednou projet cyklem a hodnotu každého
prvku použít jako index prvku druhého pole, který při každém průchodu
cyklem zvýšíš o jedna. Pole samozřejmě musí být inicializované na samé
nuly.
Mohlo by to vypadat třeba takhle.
Hlavní pole:
{1,2,6,0,7,10,5,8,2,3,4,7,5,4,2,3,1}
Pole počtů hodnot:
{1,2,3,2,2,2,1,2,1,0,1} -první prvkek je počet nul, druhý počet jedniček,
třetí počet dvojek, atd.
Zobrazeno 8 zpráv z 8.