tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1013
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Icarus77 Tutorials.de Gastzugang
    Hallo zusammen,

    ich lerne zur Zeit das Programmieren mit c und stehe nun vor einem Problem. ich arbeite mit dem Borland Builder 6.

    Ich möchte mit dem Befehl random zufällige Fliesskommazahlen in einen Array einlesen. Doch leider bringt er mir immer nur zufällige Zahlen vor dem Komma, also zufällige Ganzzahlen.

    Kann mir vielleicht jemand einen Tipp geben, wie ich das Problem lösen kann?

    Programm:

    #define ANZAHL 10

    int main()
    {
    int i, e;
    randomize();
    double vektor[ANZAHL];

    for (i=0;i<ANZAHL;i++)
    {
    vektor[i]=0;
    }

    printf("Wieviele Vektoren sollen eingetragen werden? (max. 10) ");
    scanf("%d", &e);

    for (i=0;i<e;i++)
    {
    vektor[i]=random(100);
    }

    printf("\nVector wurde mit Zufallszahlen gefüllt!\n");

    for (i=0;i<ANZAHL;i++)
    {
    printf("Vektor[%d]: %lf\n", i, vektor[i]);
    }

    getch();
    return 0;
    }
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Icarus77 Tutorials.de Gastzugang
    Dann müsste es theoretisch mit folgendem Befehl funktionieren:

    for (i=0;i<e;i++)
    {
    vektor[i]=((random(100)+1)/(random(100)+1));
    }

    Das Problem ist, das [i] als Ganzzahl deklariert ist. Wenn ich [i] aber als Double deklariere dann funktioniert
    die Schleife nicht mehr.

    Dann erscheint folgende Fehlermeldung:

    [C++ Fehler] Unit1.cpp(21): E2060 Unzulässige Verwendung einer Fließkommazahl

    Oder habe ich irgendeinen Denkfehler?
    Mach das noch nicht sehr lange..
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Zitat Zitat von Icarus77 Beitrag anzeigen
    Dann müsste es theoretisch mit folgendem Befehl funktionieren:

    Code cpp:
    1
    2
    3
    4
    
    for (i=0;i<e;i++)
                    {
                    vektor[i]=((random(100)+1)/(random(100)+1));
                    }
    Nein. Erstens liefert random eine ganze Zahl (du müßtest also erstmal casten) und außerdem schränkst du den Wertebereich auch extrem ein.

    Verwende einfach direkt die Standard-C-Funktionen srand() und rand() wie im Link.

    Beachte aber die angesprochene Problematik das diese Random-Funktionen lediglich 15 Bit Randomzahlen generieren und ein double aus 64 Bit besteht.
    Zitat Zitat von Icarus77 Beitrag anzeigen
    Das Problem ist, das [i] als Ganzzahl deklariert ist. Wenn ich [i] aber als Double deklariere dann funktioniert
    die Schleife nicht mehr.
    Die Variable i muß als Ganzzahl definiert werden.

    Gruß

    PS: Bitte verwende die Code-Tags!
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. zufällige Pause
    Von mgraf im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 20.04.06, 15:30
  2. zufällige ausgabe
    Von macropode im Forum PHP
    Antworten: 2
    Letzter Beitrag: 13.09.05, 20:49
  3. zufällige ID mit PHP erzeugen
    Von NetBull im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.04.04, 22:41
  4. Zufällige Styles
    Von M@DZG@ im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 20.02.04, 14:26
  5. zufällige Zeichenkette
    Von kesnw im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 09.10.03, 16:39