Array mit unterschiedlichen Zufallszahlen befüllen.



  • Hallo, ich bins wieder...
    Habe die Aufgabe, ein 5*5 großes 2-dimensionales Feld mit unterschiedlichen double-Zufallszahlen von zu befüllen. Das Befüllen ohne überprüfung, ob die Zahl schon enthalten ist, funktioniert.
    Irgendetwas stimmt aber mit der Funktion containsNumber() nicht. Das Programm gerät immer in eine Endlosschleife.
    könnt ihr mir helfen?

    void randomArray(double feld[][MAX], size_t z, size_t s)
    {
        int i,j;
        double zz;
        double og = 5;
        double ug = 4.70;
        srand(time(NULL));
        for(i=0; i < z; i++) //Befüllen des Feldes mit Nullen
        {
            for(j=0; j < z; j++)
            {
                feld[i][j] = 0;
            }
        }
        for(i=0; i < z; i++)
        {
            for(j=0; j < s; j++)
            {
             do
             {
                zz = ((double)rand()) / RAND_MAX * (og-ug +1)+ug;
                }while(! containsNumber(feld,z,s,zz));
    
             feld[i][j] = zz;
            }
        }
    }
    int containsNumber(double feld[][MAX], size_t z, size_t s, double number)
    {
        int i,j;
        for(i=0; i < z; i++)
        {
            for(j=0; j < s; j++)
            {
                if(feld[i][j] == number) return 1;
            }
        }
        return 0;
    }
    

  • Mod

    do ... while heißt "tu ... so lange wie", nicht "tu ... so lange bis".



  • SeppJ schrieb:

    do ... while heißt "tu ... so lange wie", nicht "tu ... so lange bis".

    Verdammte Anfängerfehler 😃


Anmelden zum Antworten