[superenalotto]estrazione numeri

di il
15 risposte

[superenalotto]estrazione numeri

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

  • Re: [superenalotto]estrazione numeri

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

    Ma poi che sono tutte quelle else ... ???
  • Re: [superenalotto]estrazione numeri

    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)
  • Re: [superenalotto]estrazione numeri

    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 è?
  • Re: [superenalotto]estrazione numeri

    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...
  • Re: [superenalotto]estrazione numeri

    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.
  • Re: [superenalotto]estrazione numeri

    Insomma tu cerchi valore in vet?
  • Re: [superenalotto]estrazione numeri

    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
  • Re: [superenalotto]estrazione numeri

    oregon ha scritto:


    Insomma tu cerchi valore in vet?
  • Re: [superenalotto]estrazione numeri

    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;
    }
    
  • Re: [superenalotto]estrazione numeri

    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;
    }
    
  • Re: [superenalotto]estrazione numeri

    @smalldragon ... lui scrive "massimo di 5", quindi basta
    
    if(abs(valore - vet[i]) <= 5)
          return true;
    
  • Re: [superenalotto]estrazione numeri

    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;
    }
    
  • Re: [superenalotto]estrazione numeri

    Ma non eraro +-5 rispetto al valore da cercare?
    dalla montagna di if che aveva messo si capiva questo!
  • Re: [superenalotto]estrazione numeri

    *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