Mycket otydlig fråga. Jag vill ha en konstant, som heter int TAL_SIZE[4]; Detta låter som en skoluppgift, varför vill du göra på just det sättet? Alltså, int TAL_STORLEK[4] ger dig en array på 4 posistioner Vill du ha en slumptalsföljd där elementen bara får vara med en gång eller får de vara hur som helst? Alltså, vill du ha "egentlig slump (ta inte hänsyn till upprepning", så är det ju bara att ta typ: Som sagt, använd inte modulo. Använd range*double(rand())/RAND_MAX. Ingen har ju svarat på hans fråga, så jag gjorde det. Nej, modulo ska inte användas allt för flitigt det är sant.Sv: Slumpa tal
Du kan "slumpa" fram ett tal mellan 0 och RAND_MAX med "rand()".
Sen måste du
1. initiera slumpgeneratorn först, vanligtvis med klockan: srand(time(0))
2. transformera det till rätt område, lämpligtvis via en skalning: r*(max-min)/RAND_MAX + min
(går även mha modulus, men det är inte lika bra).Sv:Slumpa tal
Tänkte sedan ha en vektor med fyra positioner, ändrar man på TAL_SIZE ändras även storleken på vektorn. typedef int tal[TAL_SIZE]
#include <iostream>
using namespace std;
int main(){
int TAL_STORLEK[4];
typedef int tal[TAL_STORLEK];
return 0;
}
Sv: Slumpa tal
Med tanke på att du skriver "int TAL_STORLEK[4];" så skulle jag rekommendera att läsa på lite om arrayer först. Fast vector är betydligt bättre; använd hellre det.Sv: Slumpa tal
Sen behöver du inte göra mer än att fylla den
Ta bort typedef-raden för den behövs inteSv: Slumpa tal
Accepterare du en slumpföljd på t.ex. "4444" (återkommande) eller ska du ha "4213" (icke återkommande)?Sv: Slumpa tal
<code>
for(i=0;i<4;++i)
slump[i] = rand()%4+1;
</code>Sv:Slumpa tal
Hur som helst... Den här tråden är gammal, varför svarar du i den?Sv: Slumpa tal