Kezdőoldal » Számítástechnika » Programozás » Mi a hiba a forráskódba? C++

Mi a hiba a forráskódba? C++

Figyelt kérdés

//main.cpp

# include <iostream>

# include <windows.h>


typedef unsigned short ushort;


using std::cout;

using std::cin;

using std::endl;


int main()

{


ushort *Pin = new ushort;

ushort *Pukk = new ushort;

ushort *Pukk2 = new ushort;

ushort *Bead = new ushort;

ushort *Szamlalo = new ushort;


*Pin = 1234;

*Pukk = 4321;

*Pukk2 = 6789;

*Szamlalo = 3;

*Bead = NULL;


do

{

cout <<"Add meg a PIN-kodot: "; cin >> *Bead;

if(*Bead ==*Pin)

{

cout <<"PIN-kod jo.";

}

else

{

*Szamlalo-= 1;

cout <<"PIN-kod rossz";

if(*Szamlalo > 0){cout << *Szamlalo <<" meg lehetoseged van \n";}

}


while(*Szamlalo == 0)

{

cout <<"add meg a PUKK-kodot: "; cin >> *Bead;

if(*Bead == *Pukk)

{

cout <<"PUKK kod jo ";

*Szamlalo = 1;

else

{

cout <<"PUKK-kod rossz add meg a PUKK2-kodot: "; cin >> *Bead;

if(*Bead == *Pukk2)

{

cout <<"PUKK2-kod jo ";

}

else

{

cout <<"PUKK2-kod rossz,SIM-zarolva. \n"

<<"KILEPES!!!!";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

exit(0);

}

}

}

}

}while(*Szamlalo > 0);


delete ushort Pin;

delete ushort Pukk;

delete ushort Pukk2;

delete ushort Bead;

delete ushort Szamlalo;


cin.get();

return 0;

}


2011. dec. 15. 06:37
 1/6 A kérdező kommentje:

delete Pin;

delete Pukk;

delete Pukk2;

delete Bead;

delete Szamlalo;


Ez a rész javítva de nem jó akkor sem fordul le :(

2011. dec. 15. 06:44
 2/6 A kérdező kommentje:

Már jó de most azt nem értem,hogy miért fut le újból a do while ciklus.


Frissített kód:

//main.cpp

# include <iostream>

# include <windows.h>


typedef unsigned short ushort;


using std::cout;

using std::cin;

using std::endl;


int main()

{


ushort *Pin = new ushort;

ushort *Pukk = new ushort;

ushort *Pukk2 = new ushort;

ushort *Bead = new ushort;

ushort *Szamlalo = new ushort;


*Pin = 1234;

*Pukk = 4321;

*Pukk2 = 6789;

*Szamlalo = 3;

*Bead = NULL;


do

{

cout <<"Add meg a PIN-kodot: "; cin >> *Bead;

if(*Bead ==*Pin)

{

cout <<"PIN-kod jo.";

*Szamlalo = -100;

}

else

{

*Szamlalo-= 1;

cout <<"PIN-kod rossz";

if(*Szamlalo > 0){cout <<" meg "<< *Szamlalo <<" lehetoseged van \n";}

}


while(*Szamlalo == 0)

{

cout <<"add meg a PUKK-kodot: "; cin >> *Bead;

if(*Bead == *Pukk)

{

cout <<"PUKK kod jo ";

*Szamlalo = 1;

}

else

{

cout <<"PUKK-kod rossz add meg a PUKK2-kodot: "; cin >> *Bead;

if(*Bead == *Pukk2)

{

cout <<"PUKK2-kod jo ";

}

else

{

cout <<"PUKK2-kod rossz,SIM-zarolva. \n"

<<"KILEPES!!!!";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

Sleep(500);cout <<".";

exit(0);

}

}


}

}while(*Szamlalo > 0);


delete Pin;

delete Pukk;

delete Pukk2;

delete Bead;

delete Szamlalo;


cin.get();

return 0;

}

2011. dec. 15. 06:54
 3/6 Mugen ***** válasza:

Nekem jól működik. //Visual studioban futtatva.


Bekéri a kódot, majd hogyha elrontom a pint, kéri a két pukk kódot és kilép.

2011. dec. 15. 09:34
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

Igen de nézd meg jobban ha jól adod meg a pin kódot akkor megint megy újra az egész.

A jó pin-t megadva ki kellene,hogy lépjen a do while ciklusból de nem teszi.

Miért?

2011. dec. 15. 10:09
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Azért nem lép ki,mert ushort -ot használsz. Az ushort előjel nélküli 16 bites integer.


cout <<"PIN-kod jo.";

*Szamlalo = -100; //Ez nem -100


Így a *szamlalo > 0 feltétel teljesül,ezért nem lép ki.

2011. dec. 15. 11:23
Hasznos számodra ez a válasz?
 6/6 _Jessy_ ***** válasza:
ha minden változót használsz valamire futási időben, akkor eléggé csúf dolog ponterekkel cs..ekedni, sőt hátrányos is, hacsak nem az a cél, hogy bemutasd a használatukat.
2011. dec. 15. 15:16
Hasznos számodra ez a válasz?

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!