webForumDet fria alternativet

C++ problem: Simulera en vanlig tärning

1 svar · 1 059 visningar · startad av fusion

fusionMedlem sedan okt. 20013 inlägg
#1

Hej mitt nuvarande program slumpar inte ut tärningskasten typ om jag kastar iväg tärningen 2 gånger så får jag alltid 2 st 6:or vad är fel.

#include <iostream>
using namespace std;

void main()

{
unsigned int time=2;
int antal,slump;
int utfall[6];
for(int i=0;i<6;i++) utfall=0;

cout\<\<"Tärnings kast"\<\<endl\<\<endl\<\<"Hur många kast vill du göra?"\<\<endl\<\<"\> ";
cin\>\>antal;
cout\<\<endl;
for(;antal\>0;antal--)
{
	srand(time);
    slump=rand()%6;
    for(i=0;i\<6;i++)

    {
        if(slump==i) utfall\+=1;
    }       
}
for(i=0;i\<6;i++)
{
    cout\<\<"Antal "\<\<i+1\<\<":or = "\<\<utfall\<\<" st"\<\<endl;
}

}

UlfTMedlem sedan maj 20018 027 inlägg
#2

Dels borde du anropa srand() innan du går in i for-loopen. srand() initierar en serie slumptal så du behöver inte anropa den varje gång du ska köra rand().

Dels skickar du alltid in 2 som seed till srand(). Namnet på seed-variabeln, "time", antyder att du tänkt ge tiden som seed. Det är en god tanke, men ge då tiden i så fall. Du har funktionen "time()" i "time.h". Den returnerar antal sekunder sedan 1970. Kolla hur den används. Sedan kan du använda tiden som seed.

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