Ohjelma arpoo lottorivin ja tulostaa sen:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> void main (void) { int lotto[40]={0}; /* nollataan taulukko */ /* nollapaikka on tarpeeton, mutta numeroilla 1-39 indeksointi on suoraviivaista, joten taulukon kooksi valitaan 40 eikä 39 */
int i,x; srand(time(NULL)); /*alustetaan satunnaislukugeneraattori */ for (i=1; i<=7; i++) /* Arvotaan 7 numeroa */ { x=rand()%39+1; /* arvotaan luku */ while (lotto[x]!=0) /*jos luku on jo arvottu */ { x=rand()%39+1; /* arvotaan uusi */ } /* mahdollisesti toistuvasti */ /* kun löytyy luku, jota ei vielä ole arvottu, sijoitetaan taulukkoon arvotun luvun osoittamaan lokeroon 1 */ lotto[x]=1; } /* ja palataan arpomaan seuraava luku */ for (i=1; i<=3; i++) /* Arvotaan 3 lisänumeroa */ { x=rand()%39+1; /* arvotaan luku */ while (lotto[x]!=0) /* jos luku on jo arvottu */ { x=rand()%39+1; /* arvotaan uusi */ } /* mahdollisesti toistuvasti */ /* kun löytyy luku, jota ei vielä ole arvottu, sijoitetaan taulukkoon arvotun luvun osoittamaan lokeroon 2 */ lotto[x]=2; } /* ja palataan arpomaan seuraava luku */ /* Tulostetaan oikea lottorivi */ clrscr(); printf ("Kierroksen %d oikea rivi", random(52)+1); printf (" on seuraava\n"); for (i=1; i<=39; i++) { if (lotto[i]==1) { printf ("%d ",i); } } printf ("\nLisänumerot ovat\n"); for (i=1; i<=39; i++) { if (lotto[i]==2) { printf ("%d ",i); } } } (Borlandin kääntäjien käyttäjät: stdlib.h:ssa on määritelty random() ja randomize()-funktiot, joiden käyttäminen on hieman yksinkertaisemman näköistä kuin rand()- ja srand()-funktioiden käyttäminen, ks.esim. Turbo C:n help.)