PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rand()-Funktion



darxun
05-01-2008, 17:13
Die Zahlenausgabe der rand()-Funktion muss sich im Bereich von 0 bis 10000 bewegen. In meinem Programm wird ein 10x10-Array zunächst mit 0 pro Feld initialisiert und dann werden Zufallszahlen von 0 bis 10000 zugewiesen. Das Array wird dann ausgegeben.

Das eigentliche Problem ist, die Begrenzung der Zufallszahlen, wie kann ich das realisieren?

Hier mein sicherlich falscher Code:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>


int main (void)

{
int AiArray[10][10], ii=0, ij=0, ix=0;

srand((unsigned)time(NULL));

/*Initialisierung mit "0" pro Feld*/
for(ii=0; ii<10; ii++)
{
for (ij=0; ij<10; ij++)
{
AiArray[ii][ij]=0;
}
}
/*Zufallszahlenzuweisung*/
for(ii=0; ii<10; ii++)
{
for (ij=0; ij<10; ij++)
{
while((ix=rand())<10001 && (ix=rand())>=0)
ix=AiArray[ii][ij];
}
}
/*Ausgabe*/
for(ii=0; ii<10; ii++)
{
for(ij=0; ij<10; ij++)
{
printf("%i", AiArray[ii][ij]);
}
printf("\n");
}

return 0;
}

ContainerDriver
05-01-2008, 17:45
while((ix=rand())<10001);
AiArray[ii][ij]=ix;


Wenn dann schon so.

Ansonsten würde ich dir den Modulo-Operator (%) empfehlen.

jeebee
05-01-2008, 18:58
Wenn Sie Zufalls-Ganzzahlen zwischen 1 und 10 erzeugen möchten,
sollten Sie dies immer wie folgt tun:

int j=1+(int) (10.0*rand()/(RAND_MAX+1.0));


Also für 0 - 10000:

int rnd=(int)(10000.0*rand()/(RAND_MAX+1.0));