Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C]Funzione rand()

  1. #1

    [C]Funzione rand()

    Devo generare in un array dei numeri casuali che però non si devono ripetere, sapete come fare?
    P.S. I numeri devono andare da 1 a 90

  2. #2
    Quanti ne devi generare?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Devo generare 90 numeri, che vanno da 1 a 90(devo fare un programma che simula il gioco della tombola)

  4. #4
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
            int arr[90]={0};
            int num;
            srand(time(NULL));
            for(num=0;num<90;num++)
            {
                int index;
                for(index=rand()%90;arr[index]!=0;index=(index+1)%90)
                    ;
                arr[index]=num+1;
            }
            for(num=0;num<90;num++)
                    printf("%d ",arr[num]);
            putchar('\n');
            return 0;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    ok, ho un'altra domanda. Come faccio ad impostare gli estremi in cui la funzione rand deve generare i numeri?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Se non mi sbaglio si può fare così:

    codice:
    minimo + rand() % ( ( massimo - minimo ) + 1 );
    (se gli estremi sono compresi nell'intervallo)
    every day above ground is a good one

  7. #7
    Spero di non andare off-topic, comunque, la generazioni di numeri casuali mi servirebbe sempre in relazione al programma che devo fare della tombola. Adesso devo generare la cartella dell'utente(bel problema). Premetto che mi è stato imposto di usare un array, quindi non posso usare matrici, comunque una cartella è una matrice 9x3 che contiene 15 numeri, ordinati nella colonna, e le restanti 12 caselle sono bianche. Il mio problema è quello di generare da 1 a 3 numeri per colonna, dipende dai casi, questi numeri variano a seconda della colonna, cioè prima colonna 1-9, seconda 10-19...etc fino ad arrivare all'ultima che fa eccezzione perchè va da 80-90. Mi potete aiutare a farlo?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.