Estrazione lotto(problema numeri ripetuti)

di il
3 risposte

Estrazione lotto(problema numeri ripetuti)

#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 provato 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

3 Risposte

  • Re: Estrazione lotto(problema numeri ripetuti)

    Ciao
    per risolvere il problema quando estrai il numero mettilo in una matrice
    usa 2 cicli for per riempire la matrice ed un ciclo for per controllare che il numero non sia ripetuto.
    per esempio:
    for (i=0;i<11;i++) // scorre tutte le righe della matrice
        {
          for (j=0;j<5;j++) // controlla tutte le colonne
              {
                   // qui metti la tua estrazione
                 for (k=0;k<5;k++)
                     {
                  // qui metti il confronto per numero ripetuto se il confronto si verifica fai j--;
                 // e rifai fare il ciclo di estrazione  
                      }
              }
    ricordati di inizializzare la matrice a zero prima di eseguire i tre cicli.
    non ti ho scritto il resto del codice per lasciarti lo sfizio di fare il programma.
    comunque se dovessi aver bisogno di un aiuto mi metto a disposizione.
    ciao e buon divertimento.
  • Re: Estrazione lotto(problema numeri ripetuti)

    #include <iostream>
    #include <ctime>
    #include <string>

    using namespace std;

    int main()
    {

    string ruote[11]={"Bari ", "Cagliari ","Firenze ","Genova ","Milano ","Napoli ","Palermo ","Roma ","Torino ", "Venezia ", "Nazionale "};
    int A[11][5];


    srand(time(NULL));
    bool doppio;

    for(int i=0; i<11; i++)
    {

    int j=0;
    do
    {
    int x;
    x=rand()%90+1;
    doppio=false;
    if(j>0)
    {
    int k;
    for(k=1;k<j-1;k++)
    {
    if(x==A[k])
    {
    doppio=true;
    }
    }
    }

    if(!doppio)
    {
    A[j]=x;
    j++;
    }
    }
    while(j<5);
    }
    for(int i=0; i<11; i++)
    {
    cout<<ruote<< " ";
    for(int j=0;j<5; j++)
    {
    cout<<A[j]<<" ";

    }
    cout<<" "<<endl;
    }
  • Re: Estrazione lotto(problema numeri ripetuti)

    Usate i tag code per il codice e indentatelo ... Non si capisce nulla...
Devi accedere o registrarti per scrivere nel forum
3 risposte