Zuffalszahl in funktion()



  • Ich möchte eine Zufallszahl berechnen lassen, in einer Funktion names func_zufall().

    Geht dies überhaupt?

    Es darf nicht in der main() Funktion sein, da ich dort keine Funktionen einbaue.

    Wenn dies möcglich ist, wie lautet der Code?



  • forenmaster schrieb:

    Ich möchte eine Zufallszahl berechnen lassen, in einer Funktion names func_zufall().

    Geht dies überhaupt?

    Ja.

    forenmaster schrieb:

    Es darf nicht in der main() Funktion sein, da ich dort keine Funktionen einbaue.

    Hä? 😕

    forenmaster schrieb:

    Wenn dies möcglich ist, wie lautet der Code?

    Schau dir mal rand() und srand() an.



  • schau dir mal rand() (und srand()) aus der <stdlib.h> an, womöglich sind die sogar direkt verwendbar.



  • CStoll (off) schrieb:

    schau dir mal rand() (und srand()) aus der <stdlib.h> an, womöglich sind die sogar direkt verwendbar.

    Manpage zu rand



  • @TactX

    Man kann die Funktionen ja auch direkt im switch() einbauen, die ja bekanntlich in der main() ist. Oder?

    @ProgSchild

    Gibt es da auch eine deutsche Seite?



  • forenmaster schrieb:

    Man kann die Funktionen ja auch direkt im switch() einbauen, die ja bekanntlich in der main() ist. Oder?

    http://www.pronix.de/pronix-4.html

    forenmaster schrieb:

    Gibt es da auch eine deutsche Seite?

    http://www.linuxinfor.com/german/man3/rand.html



  • forenmaster schrieb:

    Man kann die Funktionen ja auch direkt im switch() einbauen, die ja bekanntlich in der main() ist. Oder?

    Nochmal Hä 😕

    Was hat "der switch()" mit main() zu tun?



  • switch() ist eine Verzweigungsform, die normalerweise in die main Funktion eingebaut wird:

    int main()
    {
       int abfrage;
    
       //menu mit printf
    
      switch(abfrage)
    {
       case 1 : //anweisung
    
    etc...
    

    Man kann also funktion() auch in eine case einbauen, wie im Kommentar als //anweisung, oder nicht?



  • forenmaster schrieb:

    switch() ist eine Verzweigungsform, die normalerweise in die main Funktion eingebaut wird:

    switch() ist eine ganz normale C-Anweisung und kann (fast) überall in deinem Programm auftauchen 😉

    Man kann also funktion() auch in eine case einbauen, wie im Kommentar als //anweisung, oder nicht?

    Klar kannst du das. Du kannst aber auch mehrere Funktionen dort hintereinander aufrufen oder direkt eigene Berechnungen durchführen - ganz wie dir beliebt.



  • Aber ich komme immer noch nicht ganz draus.

    Wie kann ich jetzt eine Zufallszahl zwischen 0 und 100 herausfinden???

    Bitte ganzen Code posten!!!



  • #include <stdlib.h>
    #include <time.h>
    
    int main(int argc, char* argv[]) {
      int zufall;
      srand(time(NULL));
    
      zufall = rand() % 101;
      printf("Zufall: %d\n", zufall);
    
      return 0;
    }
    

    Für welches Fach brauchst du das???

    time() ist übrigens kein ANSI C sondern POSIX, aber das nur nebenbei.



  • ProgChild schrieb:

    Für welches Fach brauchst du das???

    Wie gemeint? Ich brauche das Privat...

    Aber eine Frage habe ich noch:

    Die Funktion heisst ja

    int main()
    

    ?

    Die Funktion sollte aber ausser main() sein, kann ich die jetzt einfach rauskopieren und in z.b. func_zufallszahl() reinkopieren?



  • ProgChild schrieb:

    time() ist übrigens kein ANSI C sondern POSIX, aber das nur nebenbei.

    Klar ist time() ANSI (aber das nur am Rande).



  • CStoll (off) schrieb:

    ProgChild schrieb:

    time() ist übrigens kein ANSI C sondern POSIX, aber das nur nebenbei.

    Klar ist time() ANSI (aber das nur am Rande).

    Manpage sagt was anderes, als der C Standard... doof...



  • Kann mir noch jemand auf die oben gennante Frage antworten, als nur Blödsinn zu posten?

    Ich kann ja selber testen, ob es Standart C ist oder Posix...



  • Wenn du unbedingt eine unterfunktion willst.

    #include <stdlib.h>
    #include <time.h>
    
    void func_zufall(void) {
      int zufall;
    
      zufall = rand() % 101;
      printf("Zufall: %d\n", zufall);
    } 
    
    int main(int argc, char* argv[]) {
      srand(time(NULL));
    
      func_zufall();  
    
      return 0;
    }
    

    Nich wirklich schwer, oder?

    Lern C -> http://www.pronix.de/pronix-4.html

    [Update: siehe unten]



  • forenmaster schrieb:

    ProgChild schrieb:

    Für welches Fach brauchst du das???

    Wie gemeint? Ich brauche das Privat...

    Aber eine Frage habe ich noch:

    Die Funktion heisst ja

    int main()
    

    ?

    Die Funktion sollte aber ausser main() sein, kann ich die jetzt einfach rauskopieren und in z.b. func_zufallszahl() reinkopieren?

    dann machste es halt so:

    #include <stdlib.h>
    #include <time.h>
    
    int funktion_zufall();
    int main(int argc, char* argv[])
    {
      int Zahl;
      Zahl=funktion_zufall();
      printf("Zufall: %d\n", Zahl);
      return 0;
    }
    
    int funktion_zufall()
    {
      int zufall;
      srand(time(NULL));
      zufall = rand() % 101;
      return zufall;
    }
    

    Edit: mist zu spät *g*



  • Du wolltest es so! 😃

    forenmaster schrieb:

    [...], kann ich die jetzt einfach rauskopieren und in z.b. func_zufallszahl() reinkopieren?

    Ja.

    (BTW: Ausprobieren macht Freude 😉 )

    EDIT: Viiiiel zu langsam...



  • forenmaster schrieb:

    Kann mir noch jemand auf die oben gennante Frage antworten, als nur Blödsinn zu posten?

    Ich kann ja selber testen, ob es stan**** C ist oder Posix...

    Du bekommst hier nett gemeinte Zusatzinformationen und an Stelle dankbar zu sein, beschwerst du dich, dass man dir helfen will.



  • ProgChild schrieb:

    forenmaster schrieb:

    Kann mir noch jemand auf die oben gennante Frage antworten, als nur Blödsinn zu posten?

    Ich kann ja selber testen, ob es stan**** C ist oder Posix...

    Du bekommst hier nett gemeinte Zusatzinformationen und an Stelle dankbar zu sein, beschwerst du dich, dass man dir helfen will.

    Weiste, ich finde es dann raus, wenn es nicht läuft...

    Ausserdem müsste ich noch wissen, wie ich die RAND_MAX auf 100 stellen kann.


Anmelden zum Antworten