Van 50 változó (i[50];), aminek más más érték vagy esetleg megegyező értékek is lehetnek és ebből szeretném a 10 legnagyobb értékű változó értékét és változó számát megtudni([?]).
pl:
i[1] = 234;
i[2] = 321;
i[3] = 20;
.......
i[49] = 234;
i[50] = 200;
A topp három eredmény ez esetben így nézzen ki.
1. i2(321)
2. i1(234)
3. i49(234)
Szia!
Én úgy csinálnám hogy létrehoznék még egy változót ami ez esetben 10 értéket tárol.
Aztán kell egy ciklus ami lefut annyiszor ahány elem van a változódban.
Majd ha talált egy értéket berakja az első helyre, de előtte eldönti egy feltétellel hogy az a szám illik-e oda vagy sem.
Ha esetleg van egy szám az első helyen akkor megnézi a második helyet. [...]
Ha eléri a 9. helyett és a 9. helyen lévő szám még mindig nagyobb akkor bekerül a 10. helyre és a ciklus véget is ért. (megszakítás)
Bár ha lehetséges sql-el táblában tárolnám az adatokat én onnan könnyebb lenne \"sortolni\" / szűrni az adatokat.
+++
Ilyen műveletekhez ajánlom pl a buborék rendezést, melynek lényege, hogy a számokat sorba rendezze.
!Ez az algoritmus a változón belül végzi el a sorrendbe állítást:
Értsd:
x[5]={2,1,3,5,4}; ------> x[5]={1,2,3,4,5};
példa script:
new a[9] = {2,3,6,1,9,4,8,5,7};
new tmp;
new i = sizeof(a) - 1;
new uj_i;
while (i >= 1) {
uj_i = 0;
for (new j = 0; j < i; j++) {
if (a[j] > a[j + 1]) {
// csere
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
uj_i = j;
}
}
i = uj_i;
}
Vagy még ez a fajta rendezés is hasznos lehet: <a href=\"http://forum.sa-mp.com/showthread.php?p=1085586&highlight=quickSort\">link</a>