Kezdőoldal » Számítástechnika » Programozás » Ezt hogyan kell rendezni?

Ezt hogyan kell rendezni?

Figyelt kérdés

Javaról van szó.


Van egy tömb, amihez taroznak nevek, és hogy mennyit olvasott az illető (Hány oldalt) ÉN ezt így kezdtem el megoldani:


for(int i = 0; i < tomb.length-1; i++)

{

for (int j = i+1; j < tomb.length; j++)

{

if(tomb[i].konyvoldalszam > tomb[i+1].konyvoldalszam)

{

int csere = tomb[i].konyvoldalszam;

tomb[i].konyvoldalszam = tomb[j].konyvoldalszam;

tomb[j].konyvoldalszam = csere;

}

}

}



Ám kiiratásnál nem rendezi sorrendbe. HOgyan lehet ezt megoldani?


2016. febr. 20. 20:09
1 2
 1/13 A kérdező kommentje:
Az a feladat, hogy olyan sorrendben kell kiírni a neveket, hogy ki mennyit olvasott. Ám ez nekem nem jön össze.
2016. febr. 20. 20:10
 2/13 anonim ***** válasza:
??? --> tomb[i].konyvoldalszam = tomb[j].konyvoldalszam;
2016. febr. 20. 20:29
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
Ne a könyvoldalszámokat cseréld, hanem magát a struktúrát.
2016. febr. 20. 20:33
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
Nevet is cseréld ugyanúgy, és akkor jó lesz.
2016. febr. 20. 20:47
Hasznos számodra ez a válasz?
 5/13 A kérdező kommentje:
hogy-hogy magát a struktúrát?
2016. febr. 20. 21:27
 6/13 anonim ***** válasza:

tomb[i].konyvoldalszam = tomb[j].konyvoldalszam;

helyett:

tomb[i]= tomb[j];

2016. febr. 20. 21:31
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:

for(int i = 0; i < tomb.length-1; i++)

{

for (int j = i+1; j < tomb.length; j++)

{

if(tomb[i].konyvoldalszam > tomb[i+1].konyvoldalszam)

{

int csere = tomb[i].konyvoldalszam;

tomb[i] = tomb[j];

tomb[j].konyvoldalszam = csere;

}

}

}


így sem jó!

2016. febr. 20. 21:34
 8/13 anonim ***** válasza:
100%

Ó bazz, nem csak abban az 1 sorban, hanem az egész sorban...

Ne az oldalszámot cseréld, hanem az egész struktúrát, ennél nem nagyon lehet egyszerűbben mondani...

2016. febr. 20. 21:43
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

if(tomb[i] > tomb[i+1])

{

int csere = tomb[i];

tomb[i] = tomb[j];

tomb[j] = csere;

}



de ez sem jó neki!

2016. febr. 20. 21:44
 10/13 anonim ***** válasza:

Na, ami neked kell az Arrays osztályból:

public static <T> void sort(T[] a, Comparator<? super T> c)


És ez úgy fog neked működni, hogy:

Arrays.sort(tomb, new Comparator<tömb_típusa>() {

.. public int compare(tömb_típusa o1, tömb_típusa o2) {

.. .. //return 0, ha o1 és o2 megegyezik

.. .. //return -1, ha o1 o2 előtt van

.. .. //return 1, ha o2 o1 előtt van

.. }

});

2016. febr. 20. 21:47
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!