Kezdőoldal » Számítástechnika » Programozás » C#-ban kellene egy megadott...

C#-ban kellene egy megadott cikluson belül ( ahol megkaptam már az i számokat) azt megcsinálnom hogy csak az elsőt jelenítse meg, illetve a legnagyobbat. Ezt hogyan kell?

Figyelt kérdés

int a, b,i;

Console.Write("Az intervallum alsó határa: ");

a = Convert.ToInt32(Console.ReadLine());

Console.Write("Az intervallum felső határa: ");

b = Convert.ToInt32(Console.ReadLine());

for (i = b; i >= a; i = i - 1)

if(i%2==0)

Console.Write("");

else

if (i % 3 == 0)

Console.Write("");

else

if (i % 4 == 0)

Console.Write("");

else

if (i % 5 == 0)

Console.Write("");

else

Console.WriteLine("{0}", i);


Console.ReadKey();



Így néz ki most...de most az összes prím számot kiadja...hogyan kellene hogy csak az elsőt adja ki?


2012. febr. 15. 23:29
1 2
 1/11 anonim ***** válasza:

Console.Write("Az intervallum alsó határa: ");

int a = int.Parse(Console.ReadLine());

Console.Write("Az intervallum felső határa: ");

int b = int.Parse(Console.ReadLine());

int i;

if(a != 1)

for(i = a; i <= b; i++) {

int j = 2;

while(i % j > 0) j++;

if(i % j == 0) break;

}

else i = a;

Console.WriteLine("Talált prímszám: " + i);

Console.ReadKey();

2012. febr. 16. 00:28
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

javítom ezt a részt:

while(i % j > 0) j++;

if(i % j == 0) break;


while(i % j > 0 && j <= i * 2) j++;

if(j > i * 2) break;

2012. febr. 16. 00:32
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

és ezt el is tudod magyarázni,hogy miért?

és hogy mit jelent a j?

2012. febr. 16. 01:20
 4/11 anonim ***** válasza:

j-vel osztod az aktuális számot az intervallumban.

2-vel kezdődik és maximum az aktuális szám feléig megy. Ez gondolom érthető, mivel ha a felénél nagyobb számmal osztjuk, akkor csak tört lehet. Szóval ha nem talál olyan számot ami pont az osztója és a while ciklus eléri a szám felét, akkor kilép és ezt a számot visszaadja mint prím. Ha az i=15 mondjuk, akkor a j 5-ig számol el és nem lesz 15 felénél nagyobb szám, tehát nem prím 15.

Mondjuk járunk 17-nél. Ismét 2-től léptetjük j-t, egészen eljutunk 8-ig, és nem találunk osztót. 9-nél fog kilépni a ciklus, mert 2 * 9 = 18 > 17. Tehát kaptunk egy prím számot és vége is a programnak.

2012. febr. 16. 01:29
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:
és így csak a legnagyobb prímszámot fogja kiadni a program?
2012. febr. 16. 01:39
 6/11 anonim ***** válasza:
Ja az is kell, hogy a legnagyobb legyen? Döntsd el melyiket akarod. Első találat vagy legnagyobb. Ha az elsőt akarod az intervallumból, akkor hagyd így. Ha a legnagyobbat akarod megkapni (magyarán az utolsót), akkor fordítsd meg a for ciklust. i b-től kezdődjön, amíg i >= a, i-- léptékkel.
2012. febr. 16. 02:17
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:
Hát most próbálgatom...de nem jó:(
2012. febr. 16. 07:09
 8/11 anonim ***** válasza:
Nem teszteltem C#-ban. Olvasd el a hibaüzeneteket és javítsd ki, ha van szintaktikai hiba.
2012. febr. 16. 17:20
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Annyit kell javítanod, hogy nem i * 2, hanem i / 2 van.

Ha nincs prím szám az intervallumban, akkor is ki fogja írni az utolsó számot. Tehát az i ne b-ig menjen, hanem b+1-ig.

A végén csinálj egy elágazást: ha i > b, akkor nincs prím, különben meg írd ki az i-t.

2012. febr. 16. 17:30
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

Hiba nincsen... viszont nem a kívánt eredményt adja:S


A konkrét feladat:Kérjen ba a billentyűzetből egy adott intervallum alsó és felső határát.Írassa ki az intervallumban lévő legnagyobb prím számot.

2012. febr. 16. 20:32
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!