Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    [c++] Generare n numeri random in un array

    Ciao a tutti,
    volevo chiedervi una cosa:

    Devo generare 10 numeri random,compresi tra 1 e 20,diversi fra loro ed inserirli in un array.
    come posso fare?
    ho provato a fare cosi:

    int array[20]={1,2,3...20}

    ma mi da si numeri diversi fra loro,peccato che me li scrive minimo 50 volte..


    come posso fare?grazie mille in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Che vuol dire "te li scrive 5 volte"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    nel senso che me la "stampa" a video viene ripetuta 5 volte,ogni volta cambiando i numeri del vettore!


    P.S: il vettore deve essere composto da 10 elementi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    In un ciclo, genera un valore random nei limiti richiesti e tenta di aggiungerlo al tuo array. Aggiungilo solo dopo aver controllato con un ciclo rispetto ai valori già presenti, che non esista già.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Ma senza codice come facciamo a capire cosa stai sbagliando?

  6. #6
    codice:
      for(int i=0; i<10; i++){             
                         n = 1 + rand() % 20;               
                         v_r[i]=n;               }

    Sono riusciuto a generare 10 numeri casuali..ora però non so come fare il controllo per vedere se ci sono numeri uguali!

  7. #7
    io creerei una variabile che "conta i doppioni" e mi farei due cicli for annidati: il primo for(i=0;i<dimvettore-1;i++) e il secondo for(j=1;j<dimvettore;j++) in cui porrei la condizione di uguaglianza v[i]==v[j] che mi fa incrementare la variabile conta-doppioni

  8. #8
    e quando ho finito di scorrere il vettore e di controllare se ci sono doppioni?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Se c'è un doppione, non passi al prossimo numero ma generi nuovamente il valore corrente.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Lo generi finchè non soddisfa le condizioni:

    codice:
    for(int i=0; i<10; i++)
    {
        while(<ok>)
        {             
            n = 1 + rand() % 20;       
        }        
        v_r[i]=n;               
    }
    Ovviamente <ok> non è una variabile ne una funzione, devi mettercela te la condizione (fai un controllo sugli elementi già generati), e questo non è C ma pseudo-codice.

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.