Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Generieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.02.2006, 11:02 Uhr
~CNewbie
Gast


Guten Tag,
ich bin neu hier und in C++ und habe ein Problem mit einem Quellcode. Ich möchte Zahlen generieren, was zwar klappt, jedoch generiert das Programm immer nur zwei verschiedene Zahlen. Wenn ich also zehn Zahlen generieren will, kommt beispielsweise das heraus:
12 12 12 12 12 12 50 50 50 50
Mein Code sieht wie folgt aus:

Code:
#include <iostream>
#include <string>
#include <windows.h>
#include <ctime.h>
using namespace std;
void gen()
{
  int zahl;
  int anzahl = 41;
  // -X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X Generieren
  srand( ( unsigned )time( NULL ) );
  zahl = rand() % anzahl + 1;
  // -X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X
  cout << zahl << " ";
}

int main()
{
  int zahl;
  int loop = 0;
  while ( loop < 10 )
  {
    gen();
    Sleep( 100 );
    ++loop;
  }
  Sleep( 100000 );
  return 0;
}


Wie gesagt: Ich bekomme immer nur zwei verschiedene Zahlen heraus. Wie kann ich alle zehn Zahlen verschieden generieren und es so einbauen, dass nie eine Zahl doppelt vorkommt?

Mit freundlichen Grüßen,
CNewbie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.02.2006, 11:14 Uhr
Tommix



Hallo,

Zitat:

C++:
srand( ( unsigned )time( NULL ) );



Darf nur einmal am Programmanfang aufgerufen werden. Sonst initialisierst Du mehrmals mit dem gleichen Wert.

Gruß, Tommix

Dieser Post wurde am 27.02.2006 um 11:14 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.02.2006, 11:54 Uhr
~CNewbie
Gast


Hallo Tommix,
vielen Dank für deine schnelle Antwort. Super
Nur noch - kann man verhindern, dass trotzdem einmal zwei gleiche Zahlen generiert werden?
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.02.2006, 12:02 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ja, in dem du schaust welche zahlen du schon hattest und dann ggd nochmals rand aufrufst, das ist nur sehr umständlich und meist unnötig
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: