Zufallszahlen in Arrays speichern



  • Moin
    folgendes Problem:

    wir brauchen für unser Programm eine Zufallszahl aus einem bestimmten Breich. Allerdings soll diese Zufallszahl nur 1x vorkommen.

    Bisher haben wir es so, dass wir die Zufallszahl ziehen, und nun muss sie noch in ein Array gespeichert werden, um dann später zu überprüfen ob diese Zufallszahl bereits vorhanden ist und gegebenfalls eine neue zuziehen.

    viele Dank schonmal im vorraus für die Hilfe/tipps
    und falls ihr Tipps habt, wie man es leichter/besser Lösen kann mit den Zufallszahlen wäre ich ebenfalls sehr dankbar.

    MfG lala.-



  • Was für ein Array verwendest du? Ich würde eine Containerklasse (std::vector<> oder CArray<>) bevorzugen - da kannst du mit push_back() bzw. Add() neue Werte eintragen und mit Index-Operator vorhandene Werte auslesen.



  • also das ist mein momentaner Code

    UpdateData(TRUE);
    
    	int zufall;
    	int aiZufall[15];
    	int i;
    
    	srand (time(NULL)); 
    	zufall = (rand ()%15)+1;
    	m_ausgabe = zufall;
    
    	for (i=0; i<15; i++)
    
    	{
    		if (aiZufall[i]==zufall)
    		{MessageBox("Zufallzahl bereits vorhabenden");}
    		else 
    		{aiZufall[i] += zufall;}
    	}
    
    	UpdateData(FALSE);
    

    allerdigns habe ich keine Ahnung von den unterschieden der Arrays



  • Da solltest du dir auch mitschreiben, wieviele Array-Elemente du bereits eingetragen hast. (außerdem bringt es nichts, wenn das Array mit den bisherigen Werten am Ende der Funktion wieder gelöscht wird)

    Und wie gesagt - nimm besser einen Container dafür:

    CArray<int,int> m_aZahlen;
    
    ...
    zufall = rand()%15+1;
    for(int i=0;i<m_aZahlen.GetSize();++i)
    {
      if(zufall==m_aZahlen[i])
      {
        MessageBox("bereits vorhanden");
        break;
      }
      else
      {
        m_aZahlen.Add(zufall);
      }
    }
    

Anmelden zum Antworten