[superenalotto]estrazione numeri

di Anonimizzato24003 il
15 risposte
Salve, devo creare un programma che simuli il superenalotto ma, la funzione per riconoscere i numeri non viene utilizzata dal programma.

bool trova(int valore, int vet[], int n, int budget, bool &cerca){
GetNumber(vet, n);
for(int i=0; i<5; i++){
if(valore == vet){
return cerca=true;
}

else if(valore==vet-1){
return cerca=true;
}
else if(valore==vet-2){
return cerca=true;
}
else if(valore==vet-3){
return cerca=true;
}
else if(valore==vet-4){
return cerca=true;
}
else if(valore==vet-5){
return cerca=true;
}
else if(valore==vet+1){
return cerca=true;
}
else if(valore==vet+2){
return cerca=true;

}
else if(valore==vet+3){
return cerca=true;

}
else if(valore==vet+4){
return cerca=true;

}
else if(valore==vet[i]+5){
return cerca=true;

}
}
return cerca=false;
}

il compito di questa funzione è capire se il numero giocato dall'utente è presente anche sui tabelloni o se vi è presente un numero che sia minore/maggiore, massimo di 5, rispetto al numero giocato dall'utente (quest'ultimo forse è il vero problema).

Ringrazio in anticipo a chi mi aiuterà

15 Risposte

  • Usa i tag CODE per il codice. E spiega meglio il problema.

    Ma poi che sono tutte quelle else ... ???
  • oregon ha scritto:


    Usa i tag CODE per il codice. E spiega meglio il problema.

    Ma poi che sono tutte quelle else ... ???
    scusa ma sono un nuovo utente del forum, all'inizio avevo fatto due if che contenevano tutti gli else ma poi, nel disperato tentativo di far funzionare il tutto, ho separato gli if in tanti else (senza risultato). Il mio problema è che questa funzione non trova nulla neanche se il numero giocato dall'utente compare nel tabellone (se non sono stato chiaro perdonami)
  • Non sei stato chiaro ... e anche se sei nuovo, puoi sempre leggere il regolamento e usare i tag CODE come ti ho chiesto.

    Intanto

    GetNumber(vet, n);

    cosa è? Che fa?

    E poi quello che chiami tabellone, nel programma cosa è?
  • oregon ha scritto:


    Non sei stato chiaro ...

    Intanto

    GetNumber(vet, n);

    cosa è? Che fa?

    E poi quello che chiami tabellone, nel programma cosa è?
    GetNumber è la funzione che genera una serie di 5 numeri in maniera random mentre il tabellone (array dove vengono stampati i numeri) è indicato col nome di una città (Rimini in questo caso).
    Se ti può essere più d'aiuto ti posto tutto il codice ma sono 345 righe...
  • Ciao
    vediamo se ho capito bene il problema
    hai un vettore di 6 elementi e vuoi sapere se:
    1) un valore ben prestabilito e presente nel vettore
    2) un valore ben prestabilito è presente nel vettore con uno scarto di +- 5.
    fammi sapere se ho inquadrato il problema cosi andiamo avanti.
  • Insomma tu cerchi valore in vet?
  • smalldragon ha scritto:


    Ciao
    vediamo se ho capito bene il problema
    hai un vettore di 6 elementi e vuoi sapere se:
    1) un valore ben prestabilito e presente nel vettore
    2) un valore ben prestabilito è presente nel vettore con uno scarto di +- 5.
    fammi sapere se ho inquadrato il problema cosi andiamo avanti.
    esatto
  • oregon ha scritto:


    Insomma tu cerchi valore in vet?
  • Quindi un normale ciclo for con una if non va bene ?
    
    
    for(int i=0; i<5; i++)
       if(valore == vet[i])
          return true;
    
    return false;
    }
    
  • Penso che la soluzione sia una cosa del genere.
    
    for(int i=0; i<5; i++)
       {
         if(valore == vet[i])
          return true;
          if (valore == vet[i]+5) || (valore == vet[i]-5)
          return true;
        }
    return false;
    }
    
  • @smalldragon ... lui scrive "massimo di 5", quindi basta
    
    if(abs(valore - vet[i]) <= 5)
          return true;
    
  • Scusatemi nella soluzione precedente avevo considerato solo gli estremi
    la soluzione ottimale è:
    for(int i=0; i<5; i++)
       {
         if(valore >= vet[i]-5 && valore <= vet[i]+5)
          return true;
       }
    return false;
    }
    
  • Ma non eraro +-5 rispetto al valore da cercare?
    dalla montagna di if che aveva messo si capiva questo!
  • *massimo* 5 ... rileggi (infatti nella montagna c'erano anche +4 +3 +2 ...)

    Comunque ... con la abs è meglio, essendo un intervallo ...
Devi accedere o registrarti per scrivere nel forum
15 risposte