webForumDet fria alternativet

c++ slumpfunktionen

C/C++ur C/C++

1 svar · 519 visningar · startad av Carro

Medlem sedan mars 20002 inlägg
Frågan#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!

Medlem 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

263 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
137 ms — hämta forumlista (db)
123 ms — hämta statistik (db)
136 ms — hämta tråd, inlägg och bilagor (db)