Forum » Programiranje » [C#] Vrsta - razvrščanje
[C#] Vrsta - razvrščanje
z3ro ::
Zanima me, kako bi naredil razvrščanje za vrsto potnikov, ki se vkrcavajo na letalo. Imam sledečo vrsto potnikov:
Starost: 28 Sedeč: spredaj
Starost: 10 Sedeč: zadaj
Starost: 35 Sedeč: zadaj
Starost: 66 Sedeč: zadaj
Starost: 8 Sedeč: spredaj
Starost: 15 Sedeč: zadaj
Starost: 44 Sedeč: spredaj
Starost: 11 Sedeč: spredaj
Starost: 33 Sedeč: spredaj
Starost: 25 Sedeč: zadaj
Naloga je, da razvrstim potnike tako, da je za vsakem, ki je mladoleten (ali več mladoletnimi) ena odrasla oseba. Ostale razporedimo glede na to ali sedijo spredaj ali zadaj. Pravilno urejena vrsta je torej takšna:
Otroci s spremljevalci:
Starost: 10 Sedeč: zadaj
Starost: 35 Sedeč: zadaj
Starost: 8 Sedeč: spredaj
Starost: 15 Sedeč: zadaj
Starost: 44 Sedeč: spredaj
Starost: 11 Sedeč: spredaj
Starost: 33 Sedeč: spredaj
Sedeči spredaj:
Starost: 28 Sedeč: spredaj
Sedeči zadaj:
Starost: 66 Sedeč: zadaj
Starost: 25 Sedeč: zadaj
Zajebava me sledeča oseba- Starost: 44 Sedeč: spredaj , saj mi je ne da v skupino s spremljevalci. Vem da je za to kriv taprvi IF stavek, saj so pogoji izpolnjeni in se izvede koda znotraj tega IF stavka, ampak ne vem kako naj popravim da bo delovalo pravilno.
Koda:
Starost: 28 Sedeč: spredaj
Starost: 10 Sedeč: zadaj
Starost: 35 Sedeč: zadaj
Starost: 66 Sedeč: zadaj
Starost: 8 Sedeč: spredaj
Starost: 15 Sedeč: zadaj
Starost: 44 Sedeč: spredaj
Starost: 11 Sedeč: spredaj
Starost: 33 Sedeč: spredaj
Starost: 25 Sedeč: zadaj
Naloga je, da razvrstim potnike tako, da je za vsakem, ki je mladoleten (ali več mladoletnimi) ena odrasla oseba. Ostale razporedimo glede na to ali sedijo spredaj ali zadaj. Pravilno urejena vrsta je torej takšna:
Otroci s spremljevalci:
Starost: 10 Sedeč: zadaj
Starost: 35 Sedeč: zadaj
Starost: 8 Sedeč: spredaj
Starost: 15 Sedeč: zadaj
Starost: 44 Sedeč: spredaj
Starost: 11 Sedeč: spredaj
Starost: 33 Sedeč: spredaj
Sedeči spredaj:
Starost: 28 Sedeč: spredaj
Sedeči zadaj:
Starost: 66 Sedeč: zadaj
Starost: 25 Sedeč: zadaj
Zajebava me sledeča oseba- Starost: 44 Sedeč: spredaj , saj mi je ne da v skupino s spremljevalci. Vem da je za to kriv taprvi IF stavek, saj so pogoji izpolnjeni in se izvede koda znotraj tega IF stavka, ampak ne vem kako naj popravim da bo delovalo pravilno.
Koda:
while (potniki.Count > 0) { Potnik p = potniki.Dequeue(); if (p.starost >= 18 && potniki.Count > 0 && potniki.Peek().starost < 18 || potniki.Count == 0 && p.starost >= 18) { if (p.sedec == Sedez.spredaj) sedeci_spredaj.Enqueue(p); else if (p.sedec == Sedez.zadaj) sedeci_zadaj.Enqueue(p); } else if (p.starost >= 18 && potniki.Count > 0 && potniki.Peek().starost < 18) { otroci_in_sprem.Enqueue(p); } else if (p.starost < 18) { otroci_in_sprem.Enqueue(p); } }
Genetic ::
Dodana pomozna spremenljivka vkrcan_mladoletni
bool vkrcan_mladoletni = false; while (potniki.Count > 0) { Potnik p = potniki.Dequeue(); if (p.starost >= 18 && !vkrcan_mladoletni) { if (p.sedec == Sedez.spredaj) sedeci_spredaj.Enqueue(p); else if (p.sedec == Sedez.zadaj) sedeci_zadaj.Enqueue(p); } else if (p.starost >= 18 && vkrcan_mladoletni) { otroci_in_sprem.Enqueue(p); vkrcan_mladoletni=false; } else if (p.starost < 18) { otroci_in_sprem.Enqueue(p); vkrcan_mladoletni=true; } }
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Za predlansko nesrečo tesle odgovorna Tesla in voznik (strani: 1 2 )Oddelek: Novice / Znanost in tehnologija | 14280 (9131) | Meizu |
» | Nakup avta za 5+ oseb.Oddelek: Na cesti | 7821 (6633) | 111111111111 |
» | Kdor dlje sedi, prej umreOddelek: Novice / Znanost in tehnologija | 7931 (5566) | kogledom |
» | Varnostni pas (strani: 1 2 )Oddelek: Znanost in tehnologija | 6228 (3476) | Nesta |
» | Anketa o pripetih pasovih v avtomobilu (strani: 1 2 )Oddelek: Na cesti | 4895 (4107) | Bojevnik |