Forum » Programiranje » Ne vem več, res ne....
Ne vem več, res ne....
teac ::
Mam eno nalogo v c++. Vpisujem podatke o neki ekipi pač. Vnest morem tudi neke čase. Npr. da vnesem dva časa, ki jih morem potem seštet. V redu! Vendar se mi pri izpisu teh slipnih časov zgodi nekaj, za kar ne vem razloga.
Namreč...ko hočem izpisat te skupne čase sortirane od največjega do najmanjšega, mi program te izpise rotira. Kako?
Jaz vpišem podatke. V meniju grem na izpise in izpis po skupnem času. Če grem sedaj še enkrat na izpis po skupnem času, bo čas, ki je bil prej na prvem mestu sedaj na drugem, naslednjič na tretjem....itd..odvisno pač, koliko čsaov oz. ekip sem vpisal. V glavnem vse skupaj rotira.
Spodaj je funkcija, ki sem jo uporabil za, najprej za seštevanje dveh časov, potem pa še za sortiranje seštetih časov. Če kdo ve, kaj je narobe....lahko pa mu pošljem tudi celo nalogo! Jaz namreč RES ne vem več, kaj je narobe! Aja, vse skupaj je narejeno z strukturami.
void sortiraj_po_skupnem_casu(ekipa a[], int st_ekip)
{
int vsota[10];
for(int i=0; i {
a[i].podatki_c.minute = a[i].podatki_c.minute_1 + a[i].podatki_c.minute_2;
a[i].podatki_c.sekunde = a[i].podatki_c.sekunde_1 + a[i].podatki_c.sekunde_2;
a[i].podatki_c.stotinke = a[i].podatki_c.stotinke_1 + a[i].podatki_c.stotinke_2;
if(a[i].podatki_c.stotinke > 1000)
{
int temp = a[i].podatki_c.stotinke - 1000;
a[i].podatki_c.sekunde = a[i].podatki_c.sekunde + 1;
a[i].podatki_c.stotinke = temp;
}
else if(a[i].podatki_c.stotinke==1000)
{
a[i].podatki_c.sekunde += 1;
a[i].podatki_c.stotinke=0;
}
else
{}
if(a[i].podatki_c.sekunde > 60)
{
a[i].podatki_c.sekunde -= 60;
a[i].podatki_c.minute += 1;
}
else if(a[i].podatki_c.sekunde == 60)
{
a[i].podatki_c.minute += 1;
a[i].podatki_c.sekunde = 0;
}
else
{}
}
for(int prehod=1; prehod < st_ekip; prehod++)
for(int i=0; i < st_ekip-1; i++)
{
vsota[i] = 0;
vsota[i]=a[i].podatki_c.minute+[i].podatki_c.sekunde+a[i].podatki_c.stotinke;
if(vsota[i] > vsota[i+1])
zamenjaj(a[i], a[i+1]);
}
}
Namreč...ko hočem izpisat te skupne čase sortirane od največjega do najmanjšega, mi program te izpise rotira. Kako?
Jaz vpišem podatke. V meniju grem na izpise in izpis po skupnem času. Če grem sedaj še enkrat na izpis po skupnem času, bo čas, ki je bil prej na prvem mestu sedaj na drugem, naslednjič na tretjem....itd..odvisno pač, koliko čsaov oz. ekip sem vpisal. V glavnem vse skupaj rotira.
Spodaj je funkcija, ki sem jo uporabil za, najprej za seštevanje dveh časov, potem pa še za sortiranje seštetih časov. Če kdo ve, kaj je narobe....lahko pa mu pošljem tudi celo nalogo! Jaz namreč RES ne vem več, kaj je narobe! Aja, vse skupaj je narejeno z strukturami.
void sortiraj_po_skupnem_casu(ekipa a[], int st_ekip)
{
int vsota[10];
for(int i=0; i
a[i].podatki_c.minute = a[i].podatki_c.minute_1 + a[i].podatki_c.minute_2;
a[i].podatki_c.sekunde = a[i].podatki_c.sekunde_1 + a[i].podatki_c.sekunde_2;
a[i].podatki_c.stotinke = a[i].podatki_c.stotinke_1 + a[i].podatki_c.stotinke_2;
if(a[i].podatki_c.stotinke > 1000)
{
int temp = a[i].podatki_c.stotinke - 1000;
a[i].podatki_c.sekunde = a[i].podatki_c.sekunde + 1;
a[i].podatki_c.stotinke = temp;
}
else if(a[i].podatki_c.stotinke==1000)
{
a[i].podatki_c.sekunde += 1;
a[i].podatki_c.stotinke=0;
}
else
{}
if(a[i].podatki_c.sekunde > 60)
{
a[i].podatki_c.sekunde -= 60;
a[i].podatki_c.minute += 1;
}
else if(a[i].podatki_c.sekunde == 60)
{
a[i].podatki_c.minute += 1;
a[i].podatki_c.sekunde = 0;
}
else
{}
}
for(int prehod=1; prehod < st_ekip; prehod++)
for(int i=0; i < st_ekip-1; i++)
{
vsota[i] = 0;
vsota[i]=a[i].podatki_c.minute+[i].podatki_c.sekunde+a[i].podatki_c.stotinke;
if(vsota[i] > vsota[i+1])
zamenjaj(a[i], a[i+1]);
}
}
- spremenilo: teac ()
cyer^3d ::
No no...brez slabe volje prosim
Kot prvo nekaj napak npr. kot je ta:
"for(int i=0; i { " je verjetno zasluga foruma.
...znebi se teh kosov kode:
"
}
else
{}
" - halo, premisli - ali res rabis to? - its time for reading books:)
...imas se par cvetk, ki niso sedaj vazne.
glede tvojega problema pa...
cisto na koncu imas 2 for zanki. Notri BAJE sestejes case in sortiras. huh huh
Raje razdeli to nalogo na 2 dela. V prvem SAMO sestej vsote in jih shrani v tabelo. Tako bos imel lepo tabelo z 10 vsotami, ki pa verjetno ne bodo sortirane. Torej vse kar ti preostane je se da sortiras to tabelo...ce hoces bubble prav naj bo pa bubble:)
pa povej kako ti je slo...
Kot prvo nekaj napak npr. kot je ta:
"for(int i=0; i { " je verjetno zasluga foruma.
...znebi se teh kosov kode:
"
}
else
{}
" - halo, premisli - ali res rabis to? - its time for reading books:)
...imas se par cvetk, ki niso sedaj vazne.
glede tvojega problema pa...
cisto na koncu imas 2 for zanki. Notri BAJE sestejes case in sortiras. huh huh
Raje razdeli to nalogo na 2 dela. V prvem SAMO sestej vsote in jih shrani v tabelo. Tako bos imel lepo tabelo z 10 vsotami, ki pa verjetno ne bodo sortirane. Torej vse kar ti preostane je se da sortiras to tabelo...ce hoces bubble prav naj bo pa bubble:)
pa povej kako ti je slo...
teac ::
Glede tistega else{}...ja, brezveze res. Tisti dve for zani pa sta bubble sort ja. Kaj več tukaj ne rabim, ker ne gre za neko strašno razliko oz. jaz ne rabim ne vem kako hitrega sortiranja, tako da je ta bubble sort čisto zadosti.
Bom pa res to funkcjo razdleil na dva dela. Upam, da bo delal v redu.
Bom pa res to funkcjo razdleil na dva dela. Upam, da bo delal v redu.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Algoritmi za urejanje tabelOddelek: Programiranje | 1226 (963) | lebdim |
» | java pomočOddelek: Programiranje | 1968 (1360) | kr?en |
» | c++ in linux/windowsOddelek: Programiranje | 1728 (1604) | rapvirus |
» | Pomoč pri c++ razlagaOddelek: Programiranje | 2313 (2055) | Person |
» | sortirni algoritem v CjuOddelek: Programiranje | 1436 (1288) | GaPe |