zufallszahlen, rand srand



  • ich bekomm immer 6 gleiche zahlen raus???



  • erstmal :

    int main()
    {
    ...
    return 0;
    }
    

    dann fehlen nah dem überfliegen ich glaub 3 abschließende geschweifte klammern
    und die ;`s die du nach schließenden klammern setzt kannst du auch mal besser weg lassen

    z.B.

    #include <stdlib.h>
    #include <iostream.h>
    #include <time.h>
    
    int main( void )
    {
    int i,k,c,j,l;
    int feld [6];
    int tausch;
    srand( (unsigned)time( NULL ) );
    for( i = 0; i <6;i++ )
    {
     c=rand ();
     feld [i]=c%49+1; //Rest Modul wird *49 genommen
     for(j = 0; j <= i-1;j++) //um Zahlenvergleich durchzuführen
     {
      if (feld [i]==feld [j])
      {
       i--;
       break;
      }
     }
    }
    for(k = 0; k < 6 ; k++)
    {
     for (i=0; i <5; i++)
     {
      if (feld [i] > feld [i+1])
      {
       tausch=feld [i+1];
       feld[i+1]=feld[i];
       feld[i]=tausch;
      }
     }
    }
    for (int y=0;y<6;y++)
    {
     cout<<feld[y]<<endl;
    }
    Sleep(2000);
    return 0;
    }
    


  • dankeschön, is natürlich peinlich die klammern zu vergessen 🙂

    ps. was woltest du mit SLEEP erreichen?



  • @Snoppy9134:
    Bzg. Sleep(). Ich denke mal, dass das Programm bevor es sich endgültig beendet 2000 Milli-Sekunden einschläft, oder anders gesagt, dass es ganz am Ende nochmal 2 Sekunden wartet bevor es sich beendet.

    Caipi



  • dafür nimmt man cin.get(). und bitte, bitte die iostream inkludieren! und nicht die iostream.h! da gibt es wesentliche unterschiede!



  • jaja... ich hab nur fix sleep reingeknallt weil ich ja noch testen musste und kein bock hatte extra cmd auf zu machen und cin.get() fiel mir grad nicht ein 😕



  • Warum nimmt man dafür cin.get()? Macht doch etwas völlig anderes? 😕

    😉

    (Wobei ich in diesem Falle nichts verwenden würde, da ich die Programme sowieso immer aus der Konsole ausführe :))

    Caipi



  • na ja weil cin.get() auf einen tastendruck wartet und sleep() einfach so nach 2 sekunden implizit (quasi) das programm beendet



  • cin.get() wartet auf den druck einer taste bevor es weiter geht und sleep war nur ne fixe lösung damit ich seh ob was ausgegeben wird 😉



  • hallo wollte nur mal kurz wisse

    kann ich mit hilfe von rand eine zufällige reihenfolge festlegen?

    #include <iostream>
    #include <cstdlib>
    #include <time.h>
    using namespace std;

    int main (void)
    {

    int n[9];

    n[0]=1;
    n[1]=1;
    n[2]=1;
    n[3]=1;
    n[4]=1;
    n[5]=1;
    n[6]=1;
    n[7]=1;
    n[8]=0;

    int i,y,x;

    srand( (unsigned)time( NULL ) );

    do
    {

    for(i=0;i<9;i++)
    {

    x=rand();
    y=x%n[i];
    cout<<y<<endl;

    }

    }
    while(i==8);

    return(0);
    }

    die null muss immer zuffälig zwischen den 9 stellen (8 einser und eine null) rauskommen, dass prog stürzt aber immer an der 8 stelle ab, ich nehme an der fehler liegt an "y=x%n[i];" kann mir einer n tipp geben?



  • snoopy9134 schrieb:

    ich nehme an der fehler liegt an "y=x%n[i];" kann mir einer n tipp geben?

    n[8] ist 0 --> y=x%0 --> crash



  • snoopy9134 schrieb:

    #include <time.h>

    #include <ctime>
    


  • moin,
    da dich hier jeder nur wegen syntaktischen kram anmacht: dein random nimmt die systemzeit als randomseed und da sich diese nicht in der kurzen zeit ändert, ändern sich auch deine zufallszahlen nicht.


Anmelden zum Antworten