rechnen mit einer Zufallszahl in C

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Cephalor, 30.11.2012.

  1. #1 Cephalor, 30.11.2012
    Cephalor

    Cephalor Benutzer

    Dabei seit:
    15.02.2012
    Beiträge:
    33
    Zustimmungen:
    0
    Hi,

    ich habe folgenden simplen Code geschrieben:

    int main()
    {
    srand(time(NULL));
    int x;
    double z;

    x=rand();
    printf("%d\n", x);
    z=x/0.5;
    printf("%.16lf", z);
    return 0;
    }

    Allerdings kommt als Wert für z immer 0 raus. Wieso ist das so? Ich habe echt schon unzählige Seiten durchstöbert, aber weiß nicht wieso das nicht funktioniert. Ich hoffe jemand kann mir helfen.

    MfG

    Cephalor
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 30.11.2012
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Weil 0/0.5=0 ist.....

    Wuerdest du in dieser Zeile einen Bereich angeben, in dem die zu ermittelnde Zufallszahl sein darf, dann wuerde sie auch nicht zwischen 0 und 0.999...... liegen und bei der Zuweisung zu einer Integervariable zu 0 werden.

    x = rand() % 100 + 1; <= ermittelt eine Zufallszahl aus dem Bereich 1 bis 100
    x = rand() % 100; <= ermittelt eine Zufallszahl aus dem Bereich 0 bis 99
     
  4. #3 Cephalor, 30.11.2012
    Zuletzt bearbeitet: 30.11.2012
    Cephalor

    Cephalor Benutzer

    Dabei seit:
    15.02.2012
    Beiträge:
    33
    Zustimmungen:
    0
    aber ich lasse ja extra die zufallszahl als kontrolle ausgeben, und diese ist immer ganzzahlig. Wenn ich jetzt einen integer durch einen double teile, sollte ich das dann nicht in einer double variable speichern können? Außerdem möchte ich gerade gerne Zufallszahlen zwischen 0 und 1 haben.
     
  5. #4 xandros, 30.11.2012
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Dann muss bereits X als Float oder Double definiert sein....
     
  6. #5 Cephalor, 30.11.2012
    Zuletzt bearbeitet: 30.11.2012
    Cephalor

    Cephalor Benutzer

    Dabei seit:
    15.02.2012
    Beiträge:
    33
    Zustimmungen:
    0
    ja aber wenn ich x als double deklariere, kommt als zufallszahl immer 0 raus...

    EDIT: Habs jetzt raus, aber keine Ahnung wo der Fehler lag, habs vorher auch mit double versucht und da hat es nicht geklappt. Aber danke für die Hilfe :)
     
Thema: rechnen mit einer Zufallszahl in C
Besucher kamen mit folgenden Suchen
  1. zufallszahl binär in c

    ,
  2. zufallszahl rand c 99 0 100

Die Seite wird geladen...

rechnen mit einer Zufallszahl in C - Ähnliche Themen

  1. Rechner friert ein

    Rechner friert ein: Habe folgendes Problem und bin mit meinem Latein am Ende: Seit ungefähr 2 Wochen hängt sich mein Rechner jeden Morgen 1-2 mal auf und dann...
  2. Rechner startet nicht.

    Rechner startet nicht.: Hallo, der PC meines Papas streikt. Beim normalen Betrieb auf einmal "tot" - ohne runter fahren, kein Bild mehr. Papa war lediglich im Internet...
  3. Rechner zum zocken und für Musik (800-1000€)

    Rechner zum zocken und für Musik (800-1000€): hallo, ich bin nicht mehr bewandert, was Neuheiten angeht. Daher auch der Thread. Ich benötige eine starke CPU, starken RAM und schnelle...
  4. C# und MySQL

    C# und MySQL: Hallo zusammen! Ich bräuchte dringend hilfe von Experten, da ich ein totaler Anfänger bin. Ich habe eine vorhandene Excel Tabelle. Diese soll in...
  5. Aufrunden einer int in C

    Aufrunden einer int in C: Hi Leute, wie kann ich in C eine Zahl wie 53 auf die nächst größere Zahl welche durch 10 Teilbar ist aufrunden? Also von 53 auf 60 oder von 44...