C véletlenszám generálás :S

Kezdőlap Fórumok Programozás C véletlenszám generálás :S

7 bejegyzés megtekintése - 1-7 / 7
  • Szerző
    Bejegyzés
  • #2039588
    kisbetu
    Felhasználó

      Az én idõmben úgy csináltuk, hogy egy 0 és 1 közé esõt generáltunk, aztán felszoroztuk akkorára, amekkora kellett.

      #2039589
      Rambowen
      Felhasználó

        Jó.

        #2039590
        sz_gergo
        Felhasználó

          Szia

          Nekem UHU alatt a kódod forgatása közben ezt a warningot dobja:
          warning: „RAND_MAX” redefined
          In file included from x.c:2:
          /usr/include/stdlib.h:129:1: warning: this is the location of the previous definition

          Lehet , hogy nem lehet felüldefiniálni a headerben levõt ??
          Szerintem még építsél be egy if -et ami kordában tartja a számokat.

          #2039591
          Rambowen
          Felhasználó

            Hi

            Már rájöttem, hogyan lehetne megoldani, hogy egy 1 és 52 közötti számot adjon, de nem mûködik megfelelõen. Arra gondoltam, hogy indítok egy for-t 1-52-ig, és kiiratok 0-kat és 1-eseket. Megszámolom az egyesek számát, és így megkaptam a véletlenszámomat.
            Az elmélet oké, de nem számolja meg. :((
            Itt a kód:

            Code:
            #include
            #include
            #include

            int logikaiveletlen() {
            return (rand()%2);
            }

            int main() {
              int i;
              int j = 0;

              srand(time(NULL));
              for(i=1; i

            #2039592
            Leslieman
            Felhasználó

              A RAND_MAX-ot szerintem sem lehet felüldefiniálni.
              A rand() egy 0 és RAND_MAX közé esõ számot aad vissza (a határértékeket is beleértve). Ha 1 és 52 közés esõ szám kell neked, akkor osztással és egy hozzáadással átskálázhatod a tartományt.
              Valami ilyesmire gondolok, nagyvonalakban:

              Code:
              #define oszto RAND_MAX/51

              i = rand()/oszto+1;

              Lehet finomítani.

              #2039593
              roante
              Felhasználó

                E!

                A RAND_MAX-ot felüldefiniálni szerintem sem túl célravezetõ, én sem nyúlnék ilyen dolgokhoz. Amúgy #undef RAND_MAX, #define RAND_MAX -al menne a dolog.

                Ja, meg nálam is dobott ám mindenféle hibákat a fordító, mert pl. a getch()-nak nincs beinklúdolva (szép magyar szó :-)) a curses.h, és ilyenkor nem azt mondja ám, hogy nincs meg, hanem azt, hogy implicit van deklarálva (és persze ez is csak egy warning).

                Próbáld a gcc „-W -Wall” kapcsolóival forgatni a progit!

                Code:
                #include

                int main(void)
                {
                    int i;
                    srand((unsigned) time(NULL));
                    i=(int) (53.0*rand()/(RAND_MAX+1.0));
                    printf(„szam: %dn”, i);

                    return 0;
                }

                Szerintem ez már megy (a man rand() ból loptam 🙂 ), legalábbis nekem mûködött.

                #1881566
                csaba
                Felhasználó
                7 bejegyzés megtekintése - 1-7 / 7
                • Be kell jelentkezni a hozzászóláshoz.