» Poradna » Programy

Funkce v c++

 |   |  Microsoft Windows 10 Chrome 54.0.2840.99

Zdravím Vás a mám dotaz proč mi hodnota v int v závěru nevypisuje to co má?hodnota "nejlepsi" mi vypisuje do cout "0" a ne ten cas z pole.poradte mi prosím.void statistika (Jezdci jezdci[], int pocetjezdcu){ int nejlepsi = 0; int nejhorsi = 0; cout << endl; vypisjezdcu = (int*)malloc(sizeof(int)); for(int i = 0; i < pocetjezdcu; i++) { if (jezdci[i].jmeno == "Fernando Alonso" && jezdci[i].cas > nejlepsi) { jezdci[i].cas = nejlepsi; cout << jezdci[i].jmeno << " " << nejlepsi << endl; } }}

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 10 Chrome 54.0.2840.99

Vždyť tu proměnnou nikde nenastavuješ - kromě úvodního vynulování.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 54.0.2840.99

No mam ji v tom if a tam ji definuji konecnou hodnotu ne?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Chrome 54.0.2840.100

V ifu jí možná máš, ale rozhodně tam do ní nic neukládáš. Právě naopak. Do času jezdce uložíš hodnotu z této proměnné (tj vynuluješ i čas jezdce).

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 54.0.2840.99

aha a muzes mi poradit jak mam tu hodnotu s casu jezdce ulozit do toho "nejlepsi"?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 54.0.2840.99

jo uz jsem to pochopil, ale jen diky tobe :) moc dekuju :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 54.0.2840.99

a jestli ještě můžeš pomoct aby mi to toho jezdce vypsalo jen jednou a stim jeho nejlepsim casem? furt to vypisuje kazdeho jezdce 5x :/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 54.0.2840.99

Vypisuj to až cyklus skončí a ne uvnitř něj.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 50.0

Jestli chcete vypsat nejlepšího jezdce, tak si musíte zapamatovat jeho index a pak stačí na konci funkce vypsat jeho jméno a čas. A není náhodou nejlepší čas ten nejmenší? Chyba je v nepřiřazení času do proměnné 'nejlepší' a i tak, by ta funkce vypsala všechny časy, jež poskytnou zlepšení (výpis je pokaždé, když je podmínka splněna).

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Linux Firefox 43.0

Nevím, jestli je to úplně správné řešení, protože jsem to nezkoušel a ani výrazně neprostudoval, jen jsem si tam všiml chyb, které tam jsou a během minuty to přepsal na tvarvoid statistika (Jezdci jezdci[], int pocetjezdcu) { int nejlepsi = 0; int nejhorsi = 0; cout << endl; vypisjezdcu = (int*)malloc(sizeof(int)); for(int i = 0; i < pocetjezdcu; i++) { if (jezdci[i].jmeno == "Fernando Alonso" && jezdci[i].cas > nejlepsi) { nejlepsi = jezdci[i].cas; } } cout << jezdci[i].jmeno << " " << nejlepsi << endl; }

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 54.0.2840.99

Není to správné řešení, selže to na posledním řádku.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: C++, Statistika