Funzione rand con float in C

di il
7 risposte

Funzione rand con float in C

Ciao ragazzi sono alle prese con la funzione rand e avrei bisogno di una mano ! per generare numeri interi casuali ,per esempio ,tra 0 e 4 faccio rand ()%5 ma se dovessi includere un intervallo che va da 0.0 a 5.5 come potrei fare? :/

7 Risposte

  • Re: Funzione rand con float in C

    Vedi l'esempio che trovi qui
    Poi parti dalla generazione di valori tra 0 e 55
    int v1;
    v1 = rand() % 56;         // v1 in the range 0 to 55
    e infine dividi per 10
    float v2 = (float)v1 / 10;
  • Re: Funzione rand con float in C

    Grazie gentilissimo
  • Re: Funzione rand con float in C

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    
    int main()
    {
    int n;
    int i;
    int v[n];
    float c[n];
    printf("quanti numeri vuoi inserire?");
    scanf("%d",&n);
    srand(time(NULL));
    
    for(i=0;i<n;i++){
    
            v[i]=rand()%56;
            c[i]=(float)v[i]/10;
    
    printf("valore %d : %f\n",i+1,c[i]);
    
    }
    
    }
    ho fatto come hai detto tu e funziona.il mio problema adesso è che appena inserisco 7 valori lui mi dice che il programma ha smesso di funzionare ma con valori inferiori a 7 funziona
  • Re: Funzione rand con float in C

    Questo non c'entra con la questione del thread, comunque quando scrivi

    int n;
    int i;
    int v[n];
    float c[n];

    n non ha ancora un valore e quindi non va bene. Come sai, le istruzioni sono eseguite in sequenza e ancora non hai fatto l'input.

    Quindi, sposta le righe

    int v[n];
    float c[n];

    dopo la scanf (se il compilatore supporta questo tipo di vettori).
  • Re: Funzione rand con float in C

    Grazieee
  • Re: Funzione rand con float in C

    In realtà non hai necessità del vettore v[n] ma ti basta il c[n] scrivendo

    c=(float)(rand()%56)/10;
  • Re: Funzione rand con float in C

    Grazie mille
Devi accedere o registrarti per scrivere nel forum
7 risposte