Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

C++ program nem működik

494
Nem tudom hogy miért nem működik a program .
Szerintem a függvényekkel van gond.
A kód:
http://pastebin.com/1xBvu2cT
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

2
Hmm, sok gond van vele.
- Nagyon Pascal-os hatást mutat. C++-ban nem úgy kell egy függvényből visszaadni  értéket, hogy függvénynév = érték, hanem úgy, hogy return ertek;
- Nem használod sem a <Windows.h>, sem a <locale> fejléceket... az <array> hiányzik, de valójában sem az, sem a <vector> nem kell.
- A vector<array<char, N>> egyaltalan nem igaz, sima char* pointert adsz vissza.
- A Cserel függvényben nem is kell visszaadni semmit, szóval az simán void típusú is lehet és nem kell bele return.
- Az utoslo for ciklusban meddig-- van, pedig meddig++ kellene bizonyára
- A main-ben a "char* szam;" csak egy pointert deklaral, de annak a pointernek nincs értéke, szóval szemét van benne. Ezek után ha értéket adsz mondjuk "szam[0]"-nak, abból jó kis elszállás lesz. Nem pointer kell, hanem tömb:, pl. "char szam[5];"
- "cout << szam" azt jelenti, hogy kiirod a szam karaktertömböt, vagyis stringet. Ez egy C string, nem C++, annak a végére neked kell termináló nullát tenni, vagyis a "szam[]" tömb 6 elemű kell legyen, nem csak 5.
- Írtam több helyre is megjegyzést, egyrészt, hogy kövessem, mit is akartál csinálni, meg oda, ahol nem értettem valamit.

Ide tettem a módosított kódot:
http://pastebin.com/GmF6r9xi

Az a helyzet, hogy ez most csinál valamit, de fogalmam sincs, mit kellene csináljon, nem értettem meg. Mi valójában a feladat?
0

Így már értem.

Nem kellett sokat módosítani rajta, de volt pár probléma. Itt van az új kód:
http://pastebin.com/GtfTPhqx

A változások:
- A "goto a;" hülyeség volt, ide "return szam;" kell
- Utána a for ciklusban "j < N-1" helyett "j <= N-1" van
- A következő for-ban "meddig < N" helyett "meddig >= 1" kell, és ekkor már a "meddig++" helyett is a "meddig--" a jó
- A beágyazott for-ban is "j < meddig-1" helyett "j <= meddig-1" van

Közös probléma volt, hogy ahol az eredeti pszeudo-kódban "Ciklus X-től Y-ig" van, az az X-et és az Y-t is beleérti, tehát a for ciklusban <= Y kell (ha +1 a lépésköz)
0