Kezdőoldal » Számítástechnika » Programozás » Mi lehet a baja a c# alprogimnak?

Mi lehet a baja a c# alprogimnak?

Figyelt kérdés

Egy kis alprogit akarok irni c#-ba. Generaljon a gep egy random szamot, en meg leellenorzom, es ha van benne szamjegy ismetlodes akkor generaljon egy ujatt, mindaddig amig nem lesz egy megfelelo szam. Igy probaltam megirni, de elofordul a szamjegy ismetlodes:

int szam = r.Next(1023, 9876);

do

{


for (i = 0; i < 3; i++)

{

t[i] = szam % 10;

szam = szam / 10;

}

for (i = 0; i < 3; i++)


for (j = i + 1; j <= 3; j++)

if (t[i] == t[j]) szam = r.Next(1023, 9876);

else db++;


}while(db!=1);

a kezdetben a db 0


2010. nov. 29. 16:34
 1/2 anonim ***** válasza:

Szerintem ahelyett, hogy osztással meg modulóval szórakoznál konvertáld át az int szam-ot sztringgé. Most nem jut eszembe, hogy c#-ban ez hogy van, ha nem tudod akkor googlezz rá.


A második és harmadik ciklusokban szerintem tegyél ki explicit zárójeleket a ciklusmag köré, mert így nehéz látni, hogy mi is történik. Elvileg, ha csak egy utasítás van, akkor nem kell, de if-else-nél már necces.


A hiba egyébként szerintem pont ez az if-else. Ha pld i = 0, és j = 1, akkor ha az első és a második számjegy nem egyezik meg akkor növeli db-t. Ekkor a ciklus leáll, pedig még semmit sem tudunk a harmadik és negyedik számjegyekről.

2010. nov. 29. 18:35
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Üdv!

Ahogy én értelmezem ott is hiba van, hogy a második i-s for ciklus nincs zárójelezve. Legalábbis a C megköveteli, hogy zárójelezd a ciklus magot, ha az több mint egy utasításból áll. Ez nem tudom, h a C#-nál is így van-e.

Mert a C szabályai szerint beállítja i-t nullára, majd növeli az értékét amíg i nem lesz három, majd kilép a ciklusból.

2010. nov. 30. 00:20
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!