Zufallszahlen in ein Array schreiben && Durschschnittliche Abweichung berechnen

  • geschlossen
  • C

  • huaba91
  • 3107 Aufrufe 8 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zufallszahlen in ein Array schreiben && Durschschnittliche Abweichung berechnen

    Hallo,

    bräuchte Hilfe bei folgenden Aufgabenstellungen:confused::


    Schreiben Sie ein Programm mit dem Namen RandInt, mit dem Sie n ganzzahlige Zufallszahlen z im Bereich von 0 <= z <= m erzeugen und ausgeben. Die Anzahl n und der Grenzwert m der zu erzeugenden Zahlen ist vom Benutzer frei wählbar, wobei n auf maximal 1E6 und m auf maximal RAND_MAX (ist im stdlib.h definiert) begrenzt ist. Die Ausgabe der Zahlen soll so erfolgen, dass jede Zahl in einer eigenen Zeile ausgegeben wird. Die Ein- und Ausgabe soll auf stdin und stdout erfolgen. Die Ausgabe des Programms kann wie folgt aussehen: Anzahl der Zufallszahlen? 3 Zahlenbereich 0<=Z<=? 100 45 22 76

    und

    Schreiben Sie ein Programm mit dem Namen IntStat, welches Ganzzahlen von stdin zeilenweise einliest, bis ein EOF erreicht wird. Geben Sie die Anzahl der gelesen Zahlen, die größte und kleinste gelesene Zahl, den Durchschnitt der Zahlen und die Standardabweichung jeweils auf drei Nachkommastellen aus. Verwenden Sie zum Testen einige Dateien, welche Sie mit RandInt erzeugt haben.

    Wenn jemand Zeit hat wär es nett den Sourcecode zu posten bzw zu schicken.
    Alles in C.
    Danke schon mal.

    huaba91
  • Hi,

    wo hapert es denn jetzt bei dir? Hast du dir schonmal Gedanken gemacht?
    Zu Aufgabe 1, ne Zufallszahl kannst du mit rand() (steinigt mich jetzt nicht, wenn es nicht genau stimmt) erzeugen, am besten du befragst mal Google nach rand ;)

    Und bei Aufgabe 2, da du ja nicht weißt wieviele Zahlen eingegeben werden, wäre es am schlausten am Anfang ein Array zu definieren und dass dann zu vergrößern mit realloc wars glaube ;)

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Bei der ersten weiß ich nicht wie ich das array bis zum eingegebenen grenzwert einbinde.


    Was hat das Array denn mit dem Grenzwert zu tun? Die Länge des Arrays ist n.

    und bei der zweiten komm ich so gut wie gar nicht vom anfang weg^^


    So gut wie gar nicht = nichts? Sonst poste doch einfach schon mal was du hast...

    Und bei Aufgabe 2, da du ja nicht weißt wieviele Zahlen eingegeben werden, wäre es am schlausten am Anfang ein Array zu definieren und dass dann zu vergrößern mit realloc wars glaube


    Oder einfach 2x über die Textdatei iterieren und beim ersten Mal nur die Zeilen (was ja den Elementen des Arrays entspricht) mitzählen.

    Wenn jemand Zeit hat wär es nett den Sourcecode zu posten bzw zu schicken.


    Und was bringt dir das? ;)
    Zeige doch einfach, wo es konkret(!) harkt, am besten mit deinem Quellcode.
  • Du gibts bei Aufgabe 1 als Benutzer den oberen Grenzwert ein,
    machste mit scanf oder fgets, wobei ich 2. empfehle.

    Dann muss der Benutzer aber auch noch die Anzahl der Zufallszahlen n eingeben.
    Das liest du wieder genauso ein wie mit scanf oder fgets, und dann kannst du einfach ein array erstellen, z.b. so int values[n], wobei n dein eingelesener Wert ist. Jetzt kannst du einfach an jede Position im array einen integer schreiben

    // also für mich heißt frei wählbar vorher definieren via eingabe, ansonten erstmal so probieren und dann via realloc, somit fällt die vorherige Angabe von n weg

    mfg. Chaosbohne
    [COLOR="Blue"]Suche[/color] Lieder der Band: Alexanders
    Dann noch: Je t'aime auf Deutsch und von CCR Bad Moon Rising auf Deutsch
  • Das array hat für mich zumindest soweit was damit zu tun, weil ich ja den oberen grenzwert eingebe und aus dem bereich 0 bis oberer grenzwert die zufallszahlen ausgebe


    Dem Array ist es aber egal, wie groß die Zahlen sind (solange sie Integer bleiben).

    und ich hab noch nichts da ich noch nicht genau weiß wie ich was genau machen sollte^^


    Gut, dann mal etwas Pseudocode für dich:

    Quellcode

    1. Zahlen m, n;
    2. Ausgabe("Anzahl der Zufallszahlen?")
    3. n = Eingabe
    4. Ausgabe("Zahlenbereich 0<=Z<=?")
    5. m = Eingabe
    6. Deklariere Zahlenarray mit Länge n
    7. i = 0
    8. Solange i < n Mache
    9. Zahlenarray[i] = GeneriereZufallszahl(0,m)
    10. i = i +1
    11. Schreibe Array nach demselben Muster in Textdatei
    Alles anzeigen