webForumDet fria alternativet

c++ slumpfunktionen

1 svar · 519 visningar · startad av Carro

CarroMedlem sedan mars 20002 inlägg
#1

Slumpfunktion i C++

Jag ska slumpa ett antal heltal m h a slumpfunktionen rand().
Tyvärr så får jag flera nummer som är lika. Hur gör jag för att välja bort dubletterna? Jag lagrar i vektor(array)
"Ny i C++"

Tack på förhand!

SweyMedlem sedan apr. 20003 971 inlägg
#2

Hej och välkommen hem
För att slumpa olika tal kan du placera randomize() ovanför dina rand-anrop.

För att kontrollera att det inte blir några dubletter måste du gå igenom hela vektorn och se om talet redan är taget.

Jag har skrivit ett exempel som slumpar 10 tal mellan 0 och 99. Det kan säkert komma till användning. Undrar du över någon rad kan du fråga om den.

Lycka till...

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Perl-kod:<pre>
#include <stdlib.h> // standard-bibliotek
#include <stdio.h> // konsoll-funktioner
#include <conio.h> // getch()

void main()
{
// Slumpa 10 tal
randomize();
int tal[10];
for(int no = 0; no<10; no++)
{
int nytttal;
do
{
nytttal = rand() % 100;
for(int no2 = 0; no2<no; no2++)
{
if(tal[no2] == nytttal)
{
nytttal = 100;
break;
}
}
} while (nytttal == 100);
tal[no] = nytttal;
}

// Skriv ut resultatet
for(int no = 0; no<10; no++)
printf("%d\n", tal[no]);

getch(); // Vänta på knapptryck
}

------------------
/mvh Swey
- Ta dagen som den kommer

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)