Miten saan funktion määriteltyä niin että se palauttaa taulukon. Funktio toimisi niin, että sen argumentteinä olisi 5 lukua(olisiko järkevämpää olla 5 alkioinen taulukko?), jotka sitten laitetaan 5 alkioiseen taulukkoon ja järjestetään suuruusjärjestykseen. Sen jälkeen tämä taulukko palautettaisiin.
Kiitos!
Kiitos!
Vastaukset 3
Vanhimmat
Tässä ratkaisua, käyttäen lisäysjärjestämisen algoritmia (muistaakseeni on ton nimimen suomeksi?). Pahoittelen sitä etten saa tähän koodia oikein sisennettyä.
===============================
#include
#include
void jarjesta(int *buf, int n)
{
int i, j, tmp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (buf[i] > buf[j]) {
tmp = buf[i];
buf[i] = buf[j];
buf[j] = tmp;
}
}
}
}
int main(int argc, char *argv[])
{
int buf[] = {145,3,20,4,5};
int i;
printf("jarjestamaton taulukko\n");
for (i = 0; i < 5; i++)
printf("%d ", buf[i]);
printf("\njarjestettu taulukko\n");
jarjesta(buf, 5);
for (i = 0; i < 5; i++)
printf("%d ", buf[i]);
printf("\n");
exit(0);
}
======================================
TUloksena saadaan seuraavaa:
$ ./a.out
jarjestamaton taulukko
145 3 20 4 5
jarjestettu taulukko
3 4 5 20 145
paljon kiitosta vuan
Juu ei ole mitään järkeä viedä funktioon 5 lukua järjestämistä varten. Mielummin lykkää ne juuri tuollaiseen taulukkoon ja puljaa taulukon järjestykseen aliohjelmassa, niinkuin tossa esimerkissä.