Visualizzazione dei risultati da 1 a 5 su 5

Discussione: C---Random

  1. #1
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558

    C---Random

    Come si usa la funzione random?
    Voglio creare un programma che stampi infiniti numeri pseudocasuali compresi tra 0 e 12 sullo schermo.So che la funzione è random () ma non so come si usa!
    Il programma che ho provato a creare è il seguente ma non compila:


    //Random.c
    #include <stdio.h>
    #include <math.h>
    main ()
    {
    int n;
    n=random (12);
    for (;; )
    {
    printf ("%d\n",n);
    getch ();
    }
    }


    Come si può correggere?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La funzione si chiama rand() e per poterla utulizzare in modo produttivo, la devi far precedere da una chiamata a srand() che inizializza il seme del generatore.

    A srand() dovresti passare un valore che non sia sempre uguale (per esempio, il numero di millisecondi trascorsi dall'accensione della macchina, o il numero di secondi corrente: ci sono delle funzioni apposite, che ora non ricordo).

    Per avere dei valori compresi fra 0 e 12 è sufficiente una cosa del genere:

    int valore = (int) (rand() % 12) + 1;

    (Se non ricordo male, infatti, la funzione restituisce un valore compreso fra 0 e 32768... 0 incluso e 32768 escluso).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Grazie mille !

  4. #4
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    1,414
    Se per "srandomizzare" la generazione di numeri casuali in modo che vari tutte le volte, puoi fare una cosa come questa:

    codice:
    unsigned xxx;
    
    printf ("inserisci il numero srandomizzante\n");
    scanf ("%u" , &xxx);
    
    srand (xxx);
    
    printf ("%d" , 1+ (rand() %12));
    Se invece vuoi che generi numeri casuali puoi basarti sull'orologio di sistema, così:





    codice:
    srand (time(NULL));
    
    printf ("%d" , 1+ (rand() %12));
    Spero di aver risposto alla tua domanda

  5. #5
    Utente bannato
    Registrato dal
    Jan 2003
    Messaggi
    1,414
    Scusa mi ero dimenticato di dirti che la libreria da invocare è <stlib.h> non math

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.