Kezdőoldal » Számítástechnika » Programozás » Hol a hiba a programban? C...

Hol a hiba a programban? C nyelvről lenne szó.

Figyelt kérdés

A program célja egy tömb elemeit rendezni. Kétféle rendezést ismerek, a buborék-és gyorsrendezést, úgy tudom, hogy van más is, de puszta kíváncsiságból gondoltam, írok egy saját algoritmust. Ez a következő elven működik: A tömbben megkeresi a legkisebb ill. legnagyobb elemet, ezeket a legelső ill. legutolsó helyre viszi, majd megismétli, ám ezúttal már nem dolgozik a két szélső elemmel. Harmadszor már a széltől számított 2-2 elem nem játszik stb. Ezt elvégzi feleannyiszor, mint ahány elemű a tömb, és így elméletileg minden elem a helyére kerül. Ha páratlan elemszámú tömbről van szó, akkor az elemszám felét lefele kerekíti, és elméletileg így is rendezett kéne legyen. Megjegyzem, hogy mérjem, milyen hatékony a megoldás, beépítettem egy időmérőt is.


A probléma a következő: A program a legnagyobb elemet nem viszi hátra, és a legkisebb elem értékét nem kicseréli a legelső helyen levővel, hanem csak beírja az értékét az első helyre, így elvesztődik az az érték, amit ott tároltam. A kicserélő függvényt külön ellenőriztem, jól működik. Különös módon, az utolsó helyre sokszor bekerül elemnek a 2293616, egy nem kigenerált szám, ami állandó.


Itt a kód, nem a legszebb, de olvasható, és nem tudom, mi okozhatja a problémát.


[link]


Ami a szépségét illeti, ezen tervezek javítani, ám először szeretném működőképessé tenni. A válaszokat köszönöm előre is.


2014. júl. 30. 13:04
1 2
 11/11 anonim ***** válasza:
Hát egy continue még mindig szebb, mint a goto, de ezt azért sokkal szebben is lehetne szerintem.
2014. júl. 31. 16:17
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!