/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Random number ?
Fra : !G!


Dato : 03-02-02 20:57

En lille sjov øvelse, som jeg prøver er som følgende at lave en random
tæller
der vælger tilfældige tal fra en række mellem fx 0 & 10.
Den har jeg lavet, men hvis man vil lave sin egen fx. lotto tæller.
Så skal man jo få programmete til som før at vælke tilfældige tal ud, men
denne
gang skal den jo udlave at vælge det samme tal 2 gange..
Hvordan gøres dette??

Min kode ( i C kode ) til random number er som følger:
!G!
------------------------------------------------------------------klip

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

int rand(void);
int again, choice;
char input[12];

int main()
{
int i;
time_t t;
srand((unsigned) time(&t));
again:
clrscr();
textcolor(WHITE);
cprintf("Random 10 numbers between 0 & 10:\r\n\n");

for (i=0; i < 10; i++)
{
textcolor(LIGHTBLUE);
cprintf("Random number:%*s",4,"");
textcolor(YELLOW);
cprintf("%d\r\n",random(11));
}

textcolor(LIGHTRED);
cprintf ("\n\nWanna try again? - Hit 1 for go again or any other button
to quit%*s",3,""),
fgets(input,10,stdin);
choice = atoi(input);
switch (choice)
{
case 1:
goto again;
default:
return 0;
}
}



 
 
Peder Skyt, Z=nospam (04-02-2002)
Kommentar
Fra : Peder Skyt, Z=nospam


Dato : 04-02-02 00:02

On Sun, 3 Feb 2002 20:57:26 +0100, "!G!" <gugge@email.dk> wrote:

>undlave at vælge det samme tal 2 gange..
>Hvordan gøres dette??

Lav en liste af structs, hver indeholdende én valgmulighed + ét
tilfældigt tal. Sorter listen på det tilfældige tal. Tag det ønskede
antal valg fra den den ene ende af den sorterede liste.


Klaus Hebsgaard (04-02-2002)
Kommentar
Fra : Klaus Hebsgaard


Dato : 04-02-02 10:22


"Peder Skyt, Z=nospam" <pesky@pc.dkZ> wrote in message
news:c2gr5ugagrql1iec0ec6etnd57o04ignr7@4ax.com...
> On Sun, 3 Feb 2002 20:57:26 +0100, "!G!" <gugge@email.dk> wrote:
>
> >undlave at vælge det samme tal 2 gange..
> >Hvordan gøres dette??
>
> Lav en liste af structs, hver indeholdende én valgmulighed + ét
> tilfældigt tal. Sorter listen på det tilfældige tal. Tag det ønskede
> antal valg fra den den ene ende af den sorterede liste.
>

Jeg har en søn på 2½, han er ret god til at tælle random mellem 1 og 10,
bare sig til hvis du skal bruge nogle random tal.

MVH

Klaus



!G! (04-02-2002)
Kommentar
Fra : !G!


Dato : 04-02-02 20:07

Det kan også laves som følger, dynamisk array....
!G!

int *dynamicarray = NULL;
int dynamicstack (int number)
{
int i;
if (dynamicarray)
{ free (dynamicarray); }

dynamicarray = malloc (sizeof (int) * number);
for (i = 0; i < number; i++)
{ dynamicarray[i] = i; }

for (i = number-1; i >= 0; i--)
{ int index = random(i);

int temp;
temp = dynamicarray[i];
dynamicarray[i] = dynamicarray[index];
dynamicarray[index] = temp;
}
for (i = 0; i < number; i++)
{ printf("%d\n", dynamicarray[i]); }
return 0;
}
int main()
{ dynamicstack (15);
getch();
return 0;
}



Anders Borum (05-02-2002)
Kommentar
Fra : Anders Borum


Dato : 05-02-02 01:05

"!G!" <gugge@email.dk> skrev i en meddelelse
news:EZA78.11287$m6.1290813@news000.worldonline.dk...
> Det kan også laves som følger, dynamisk array....
> !G!
[klip]
> for (i = 0; i < number; i++)
> { dynamicarray[i] = i; }
>
> for (i = number-1; i >= 0; i--)
> { int index = random(i);
>
> int temp;
> temp = dynamicarray[i];
> dynamicarray[i] = dynamicarray[index];
> dynamicarray[index] = temp;

Selve den tilfældige ombytning af din array kan laves let med random_shuffle
fra <algorithm> i STL.
Noget i stil med:
std::random_shuffle(dynamic_array, dynamic_array + number);

[klip]




Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste