15 Zufallszahlen keine darf doppelt sein!?
-
hi hab ein problem
ich soll ein array mit 15 zufallszahlen füllen die zahlen dürfen von 1-100 gehn allerding darf keine zahl doppel sein hab jetzt schon folgenden code aber der funktioniert nichtint iZufallszahl[15]; int iIndex1=0; int iSave; int iIndex2=15; int i=15; srand((unsigned)time(NULL)); for (iIndex1=0; iIndex1<15; iIndex1++) { iZufallszahl[iIndex1]=rand()%100+1; } do { for(iIndex1=0; iIndex1<15; iIndex1++) { if(iZufallszahl[iIndex1]>iZufallszahl[iIndex1+1]) { iSave=iZufallszahl[iIndex1]; iZufallszahl[iIndex1]=iZufallszahl[iIndex1+1]; iZufallszahl[iIndex1+1]=iSave; } } lZeichen--; }while(lZeichen>0); srand((unsigned)time(NULL)); i=15; iIndex2=0; do { if(iZufallszahl[iIndex2]==iZufallszahl[iIndex2+1]) { printf("ok"); iZufallszahl[iIndex2]=rand()%100+1; for(iIndex1=0; iIndex1<15; iIndex1++) { if(iZufallszahl[iIndex1]>iZufallszahl[iIndex1+1]) { iSave=iZufallszahl[iIndex1]; iZufallszahl[iIndex1]=iZufallszahl[iIndex1+1]; iZufallszahl[iIndex1+1]=iSave; } } i=15; } else { i--; } }while(i>0);
ich hoff ihr könnt mir weiterhelfen
mfg
cYsCo
-
#include <iostream> #include <stdlib.h> using namespace std; // Liefert eine Zufallszahl zwischen min und max int rand(int min, int max) { return (rand()%(max-min+1))+min; } // Liefert ob eine Zufallszahl im Array schon vorhanden ist bool vorhanden(int* array, int size, int wert) { for(int i=0; i<size; ++i) { if(array[i] == wert) { return true; } } return false; } // Hauptfunktion int main() { // Zufallsgenerator initialisieren srand(time(0)); // Array für die Zahlen int zahlen[15]; for(int i=0; i<15; ++i) { do { zahlen[i] = rand(1, 100); } while(vorhanden(zahlen, i, zahlen[i])); } // Ausgabe for(int i=0; i<15; ++i) { cout << zahlen[i] << endl; } }
ops ansi-c, naja musst ja nur die Ausgabe ändern, Rest sollte trotzdem funktionieren.
-
oh man danke es funktioniert
mercy