18. maj 2000 - 08:09Der er
9 kommentarer og 2 løsninger
Sortering af tal i Array
int[]tabel = new int[20]; her er der gjort plads til 20 tal i et array. Det er meningen er jeg skal putte 20 tilfældige tal ind i arrayet. Men hvordan tager jeg de 5 største tal ud af arrayet ??????????
Som du selv antyder, er det nok det nemmeste at sortere dette array, og dermed finde de 5 største i den ene ende. Du kan sikkert finde en algoritme i en lærebog.
nu går jeg snart BANANAS, min computer går AMOK. 3 gang lykkens gang. :-)
int tabel[] = new int [20];
int stoerste = 0; for (int x =0;x<tabel.length;x++) { if (tabel[x]>stoerste) stoerste = tabel[x] }
for(int y = 0;y<tabel.length;y++) { if (tabel[y]==stoerste) { tabel[y] = 0; }
/* i dette program får jeg det største tal hvorefter positionen i arrayet nulstilles. problemet er bare hvordan kan jeg får programmet til at looope så jeg finde de 5 stoerste tal */
Hvis du vil bruge den metode du har lagt op til, så skal du lave en for løkke mere udenom dine 2 for løkker. Denne løkke skal så løbe fra 0-4 (eller 1-5). Herved finder du de 5 største tal i arrayet, og får nulstillet deres oprindelige position. Hvis du så samtidig vil have gemt de 5 største tals værdier kan du jo gemme dem i et nyt array. F.eks. som nedenstående.
int tabel[] = new int [20]; int femStoerste[] = new int [5];
int stoerste = 0;
for (int i=0;i<5;i++) { for (int x =0;x<tabel.length;x++) { if (tabel[x]>stoerste) stoerste = tabel[x] }
for(int y = 0;y<tabel.length;y++) { if (tabel[y]==stoerste) tabel[y] = 0; } femStoerste[i] = stoerste; }
--------------- Jeg tror nu jeg ville sortere hele arrayet istedet, og så bare hente tabel[0] til tabel[4] til sidst.
Til Erikjacobsen: Du har ganske ret det er en skoleopgave. Bruger nu den til at repetere med til eksamen. Havde nu besluttet mig for at lave et program der sorterede arrayet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.