Hallo,
ich möchte für mein Programm Zufallszahlen generieren lassen, die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter sein sollen. Also genau diese Zahlen und nichts dazwischen. Nun meine Frage ist das mit der Zufallsfunktion rand() zu bewerkstelligen.
ich möchte für mein Programm Zufallszahlen generieren lassen,
die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter
sein sollen. Also genau diese Zahlen und nichts dazwischen.
Nun meine Frage ist das mit der Zufallsfunktion rand() zu
bewerkstelligen.
rand() liefert eine Ganzzahl zwischen 0 und RAND_MAX.
RAND_MAX ist eine compilerspezifische Konstante und sollte in „stdlib.h“ zu finden sein.
Man kann wie es doeneraffe schon gesagt hat das dann einfach mal 5 nehmen. Das sähe dann bei mir so aus
#include #include
using namespace std;
int main()
{
srand(time(NULL)); //damit nicht immer die Gleichen Zahlen rauskommen
int g;
int e;
g = rand()% 100; // maximalgrenze für die Zahl von rand()
e = g * 5;
cout
mit rand oder srand (o.ä) wirst Du das allein nicht hinbekommen, aber wie wäre es, wenn Du Dir eine Zufallszahl zwischen 0 und n (hier 10) ermittelst und dann diese in eine Schleife aufaddierst und ausgibst:
cMyRandMaxP1 = 11; // Rand auf 10 Maximieren
cMax = 100; // Max. 100 Zahlen ausgeben
z = srand( time( NULL )) % cMyRandMaxP1;
o = z;
for ( i = 0 ; i
Der Code ist natürlich nur exemplarisch (Variabledefinition etc. muss noch erfolgen.
Gruß
Volkmar
> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>
ich möchte für mein Programm Zufallszahlen generieren lassen,
die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter
sein sollen. Also genau diese Zahlen und nichts dazwischen.
Nun meine Frage ist das mit der Zufallsfunktion rand() zu
bewerkstelligen.
Du könntest, zusätzlich zu den bereits
genannten richtigen Varianten, auch noch
eine Variante vewenden, in der Du die
Zahlen, aus denen Du auswählst, explizit
vorgibst, also etwa so:
#include
#include
using namespace std;
typedef
unsigned int /\* hier den Typ der Zahlen angeben \*/
Meine;
Meine Zahlen[] = { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 };
Meine Zufallsfunktion(void)
{
size\_t nelements = sizeof(Zahlen)/sizeof(\*Zahlen);
size\_t index = rand() % (nelements-1);
return Zahlen[index];
}
int main()
{
cout Grüße
CMБ
Danke für die Hilfe
So es hat geklappt. Ich habe es nach dem Vorschlag von Semjon Michailowitsch gemacht. Hier der noch etwas veränderte code. ich musste noch eine rand() Funktion einbauen, da nach jedem programm start immer die gleichen Zahlen gekommen sind.
#include
#include
using namespace std;
//Zufallsfunktion aus dem wer-weis-was Forum zur Erstellung
//von bestimmten Zufallszahlen.
typedef
unsigned int /\* hier den Typ der Zahlen angeben \*/
Meine;
Meine Zahlen[] = { 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 };
Meine Zufallsfunktion(void)
{
size\_t nelements = sizeof(Zahlen)/sizeof(\*Zahlen);
size\_t index = rand() % (nelements-1);
return Zahlen[index];
}
int main()
{
srand( (unsigned) time(NULL) ) ; //Start der Zufallsfunktion, für unterschiedliche Zahlen
int zufallZ = 1 + ( rand() % 49 ) ;
cout
So klappt alles und es kommen immer unterschiedliche Zahlen dabei raus.
Nochmal vielen Dank für die Lösungsvorschläge.
Mit freundlichen Grüßen.