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 nicht

    int 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 😉


Anmelden zum Antworten