2016-12-09 2 views
0

Hallo Ich möchte wissen, gibt es eine Möglichkeit, Randnummer zu speichern, ohne Benutzer zur Eingabe aufgefordert. In diesem Beispiel wollen wir Benutzer 16 randnumbers in Array speichern storerand ohne dass der Benutzer für randnums zum Beispiel aufgefordert werden:C Array von Zufallszahlen Speicher

#include<stdio.h> 
#include<stdlib.h> 
void main() { 
    int randnum; 
    int i=0; 
    int storerand[16]; // storing randnumbers 
    randnum=rand(); 

     while(i <16){ 
      storerand[i]=randnum; // why is this not storing 16 rand number how can i store 16 randnumbers 
     i++; 
     } 
     return 0; 
+0

Ihr Schleifenzähler 'I' erscheint nicht überall im Code erhöht werden. Was denkst du, bedeutet dies für deine Schleife? – Arc676

+0

Möchten Sie, dass die 16 Werte genau der gleichen Zufallszahl entsprechen, oder möchten Sie für jeden Slot eine neue Zufallszahl generieren? – paddy

+0

@paddy können sie unterschiedliche Nummern sein –

Antwort

2

Eine einfache Möglichkeit, Zufallszahl in C zu erzeugen, ist die rand() Funktion zu verwenden, die mit <stdlib.h> kommt. Beachten Sie, dass Sie, wenn Sie nicht mit der Zeitbibliothek beginnen, bei jeder Ausführung des Programms dieselben Zufallszahlen erhalten.

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

int main (void) { 
    //Uses system time to seed a proper random number. 
    srand(time(NULL)); 
    //rand() generates a random integer 
    int a = rand(); 
    //Use mod to restrict range: 
    int b = rand()%5; //random integer from 0-4 
    return 0; 
} 

Sie müssen auch sicherstellen, dass Sie Ihren Index innerhalb Ihrer while-Schleife erhöhen.

while(i < 16) { 
    storerand[i] = rand(); 
    i++; 
} 
1

Sie initialisieren randnum mit einem zufälligen Wert hier:

randnum=rand(); 

Und dann führen Sie Ihre Schleife seinen Wert in jeden Steckplatz Ihres Arrays zu setzen. Das heißt, Sie setzen den gleichen Wert in jeden Steckplatz.

while(i <16){ 
    storerand[i]=randnum; 
    i++; 
} 

Die Lösung ist rand() jedes Mal um die Schleife zu nennen:

for(i = 0; i < 16; i++) { 
    storerand[i] = rand(); 
}