Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Estrazione(problema ripetizione numeri)

    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    
    const int max_numeri=5;
    const int max_citta=11;
    string citta[max_citta]={"Bari","Cagliari","Firenze","Genova","Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale"};
    int numeri[max_numeri];
    int giocoEstrazioni()
    {
    
    
    int numeri;
    srand (time(NULL));
    for(int j=0; j<max_citta; j++){
    
    cout<<endl<<citta[j]<<"     \t";
    
    for(int i=0; i<max_numeri; i++){
    numeri=rand()%90+1;  //*estrazione del numero;
    
    
                                                 //*qua ci vorrebbe un controllo ma se metto per esempio un
                                                //con if o altro ma non so come ho già provato per esempio
                                                //ok un if e un break se i numeri erano uguali creando
                                               //anche un array ma niente
    
    
    
    cout<<" \t"<<numeri;
    }
    }
    cout<<endl;
    }
    int main(int argc, char *argv[])
    {
    int numero;
    giocoEstrazioni();
    
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    Ciao a tutti questo è un mio piccolo programma per simulare l'estrazioni del lotto
    e come potete leggere nei commeti con riesco a mettere un controllo per non fare uscire numeri uguali nella stassa ruota,ho provareto a mettere un if che controllasse che il numero uscito non fosse uguale a un array che avevo creato ma niente da fare...qualcuno sa darmi una mano?..sono alle prime armi quindi m servirebbe qualcosa di non troppo difficile...grazie a tutti

    ah naturalmente in c++

  2. #2

    Moderazione

    Ho sistemato il codice nei tag [code], aggiunto il linguaggio al titolo della discussione ed eliminato il post ridondante (ti bastava un edit). In futuro ricordati di impostare correttamente la discussione fin da subito.

    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    codice:
    #include <cstdlib>
    #include <iostream>
    
    #define max_numeri 5
    #define max_citta 11
    
    using namespace std;
    
    giocoEstrazioni();
    
    int main(int argc, char *argv[])
    {
      srand (time(NULL));
      giocoEstrazioni();
      system("PAUSE");
      return EXIT_SUCCESS;
    }
    
    int giocoEstrazioni()
    {
      string citta[max_citta]={"Bari","Cagliari","Firenze","Genova",
    "Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale"};
      int numeri[max_numeri];
      for(int j=0; j<max_citta; j++){
        cout<<endl<<citta[j]<<"     \t";
        for(int i=0; i<max_numeri; i++){
          randomize:
          numeri[i]=rand()%90+1;
          for(int k=i-1; k>0; k--)
            if(numeri[k]==numeri[i]) goto randomize;
          cout<<" \t"<<numeri[i];
        }
      }
      cout<<endl;
    }
    così dovrebbe andare ^^ (l'ho modificato un po' rendendolo più elegante e leggibile, ma la sostanze è la stessa... Spero non ti dispiaccia).

  4. #4
    Originariamente inviato da giorgio_kollias
    codice:
    #include <cstdlib>
    #include <iostream>
    
    #define max_numeri 5
    #define max_citta 11
    
    using namespace std;
    
    giocoEstrazioni();
    
    int main(int argc, char *argv[])
    {
      srand (time(NULL));
      giocoEstrazioni();
      system("PAUSE");
      return EXIT_SUCCESS;
    }
    
    int giocoEstrazioni()
    {
      string citta[max_citta]={"Bari","Cagliari","Firenze","Genova",
    "Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale"};
      int numeri[max_numeri];
      for(int j=0; j<max_citta; j++){
        cout<<endl<<citta[j]<<"     \t";
        for(int i=0; i<max_numeri; i++){
          randomize:
          numeri[i]=rand()%90+1;
          for(int k=i-1; k>0; k--)
            if(numeri[k]==numeri[i]) goto randomize;
          cout<<" \t"<<numeri[i];
        }
      }
      cout<<endl;
    }
    così dovrebbe andare ^^ (l'ho modificato un po' rendendolo più elegante e leggibile, ma la sostanze è la stessa... Spero non ti dispiaccia).
    Ma va figurati anzi grazie mille! comunque sì così è scritto meglio effettivamente,però continua a uscire ogni tanto dei numeri uguali nella stassa ruota come mai?eppure così dovrebbe andare

  5. #5
    Originariamente inviato da aironenero
    però continua a uscire ogni tanto dei numeri uguali nella stassa ruota come mai?
    si, hai ragione, infatti nel ciclo con la variabile k la condizione è k>=0, non k>0 (così non controllava mai il primo numero) sry ^^

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    #include <iostream>
    #include <set>
    #include <cstdlib>
    
    using namespace std;
    int main() {
       srand(time(NULL));
       set<int> numeri;
       while(numeri.size() < 6)
       	numeri.insert(rand()%90+1);
       set<int>::iterator it;
       for(it=numeri.begin(); it!=numeri.end(); it++)
       	cout << *it << " ";
       cout << endl;
       return 0;
    }
    Molto più semplice e veloce usando un set...
    Scusate la formattazzione ma ho scritto dal telefono, il codice genera solo i 6 numeri di una ruota e li stampa, ma non credo sia impegnativo riadattarlo...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.