/* atk1 h7t4 */ #include #include /* sisältää rand()-funktion, jolla generoidaan satunnaislukuja */ #define N 40 /* lajiteltavan taulukon koko */ void init(int*); /* alustaa taulukon */ void prn(int*); /* tulostaa taulukon sisällön ruudulle */ int order(int*); /* testaa, onko taulukko järjestyksessä */ void swap(int*,int,int); /* vaihtaa kahden taulukon alkion paikat keskenään */ void sort(int*); /* järjestää taulukon alkiot suuruus- järjestykseen (käyttää order- ja swap-funktioita */ main() { int x[N]={0}; /* satunnaislukugeneraattori on alustettava ennen käyttöä. oikeastaan funktion rand() antamat luvut eivät ole todellisia satunnaislukuja, vaan jollain kaavalla laskettuja. kaava on vaan sen verran monimutkainen, että tulokset vaikuttavat satunnaisilta. samalla srand()-funktion argumentilla saadaan aina samanlainen taulukko. jos haluat, että taulukko saa joka ajokerralla eri arvoja, voit käyttää alustukseen esim. kellonaikaa. tämä hoituu sisällyttämällä lähdekooditiedostoon kirjastotiedosto time.h, ja kirjoittamalla esim. srand(time(NULL)); */ srand(12); init(x); prn(x); sort(x); prn(x); } void init(int* x) { int i; for(i=0;i saadaan satunnaisluku väliltä 0...9 */ x[i]=rand() % 10; } void prn(int* x) { int i; for(i=0;ix[i+1]) swap(x,i,i+1); /* tämä ei välttämättä ole tehokkain mahdollinen lajittelu- algoritmi... :) */ }