Problema switch, credo

di il
2 risposte

Problema switch, credo

Buongiorno e grazie di avermi accolto...
Ho fatto un programma, che estrae i numeri per una tombola, con varie iterazioni
Funziona tutto, ma se metto in uno switch il caso della tombola, non funziona più niente

se si tolgono le righe 114-123, funziona (senza la scelta della tombola...)
con il case 1, non parte

Non so cosa possa aver sbagliato, mi aiutate?
chiedo scusa se non è il modo giusto...ho imparato da sola per aiutare mio figlio a scuola..

//Dopo aver creato la cartella (15 numeri diversi compresi tra 1 e 90 e disposti su tre righe in ordine crescente),
//il programma dovrà cominciare a estrarre numeri casuali non ripetuti tra 1 e 90.
//Dopo ogni numero estratto, bisognerà visualizzare la cartella e
//generare un menu che dia all'utente la possibilità di segnalare una delle seguenti opzioni: ambo, terna, quaterna, cinquina, tombola o nulla.
//Quando l'utente segnala, per esempio, un ambo (vale lo stesso per le altre segnalazioni),
//il programma dovrà chiedere all'utente i numeri relativi alla segnalazione,
//dovrà controllare se l'ambo (o qualsiasi altra segnalazione) sia stato effettivamente realizzato oppure no e
//dovrà comunicare l'esito del controllo.
//Ambo, terna, quaterna, cinquina e, ovviamente, tombola possono essere realizzati una volta sola.

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{

int cartella[15];
int i;
int j;
int n;
int scambio,ambo,ambo_fatto,terno,terno_fatto,quaterna,quaterna_fatta, cinquina,cinquina_fatta,tombola_fatta;
int numero_estratto[n];

int tombola[15];
bool check=true;
int scelta;
int A1,A2,T1,T2,T3,C1,C2,C3,C4,C5,Q1,Q2,Q3,Q4;



for(i=0;i<15;i++)
{cartella=rand()%89+1;//estrae 15 numeri random
for(j=0;j<i;j++)//per evitare ripetizioni
{if(cartella==cartella[j])
{i--;}
}
}



while(check)
{check=false;
for(i=0;i<4;i++)
{if(cartella>cartella[i+1])
{scambio=cartella;
cartella=cartella[i+1];
cartella[i+1]=scambio;
check=true;}
}
}
check=true;
while(check)
{check=false;
for(i=5;i<9;i++)
{if(cartella>cartella[i+1])
{scambio=cartella;
cartella=cartella[i+1];
cartella[i+1]=scambio;
check=true;}
}
}
check=true;
while(check)
{check=false;
for(i=10;i<14;i++)
{if(cartella>cartella[i+1])
{scambio=cartella;
cartella[i]=cartella[i+1];
cartella[i+1]=scambio;
check=true;}
}
}

for(i=0;i<15;i++)//stampa la cartella
{cout<<cartella[i]<<" ";
if((i+1)%5==0)
{cout<<endl;}
}

srand(time(NULL));

for(i=0;i<90;i++)
{numero_estratto[i]=rand()%89+1;//estrae numeri random
for(j=0;j<i;j++)//per evitare ripetizioni
{if(numero_estratto[i]==numero_estratto[j])
{i--;}
}
}
cout<<endl;
cout<<"Il primo numero estratto è "<<numero_estratto[0]<<endl;
cout<<endl;
cout<<"Il numero estratto è "<<numero_estratto[1]<<endl;
cout<<endl;
ambo_fatto=0;
terno_fatto=0;
quaterna_fatta=0;
cinquina_fatta=0;


for(i=2;i<90;i++)
{
cout<<"1 tombola"<<endl;
cout<<"2 ambo"<<endl;
cout<<"3 terno"<<endl;
cout<<"4 quaterna"<<endl;
cout<<"5 cinquina"<<endl;
cout<<"Qualsiasi altro numero per non segnalare nulla"<<endl;
cout<<endl;
cin>>scelta;
switch(scelta)
{
case 1:
for(i=0;i<15;i++)
{cout<<"Numero: "<<endl;
cin>>tombola[i];}
for(i=0;i<15;i++)
{cout<<tombola[i]<<" ";
}
if(tombola[i]==cartella[i])
{tombola_fatta++;}
break;

case 2:
cout<<endl;
for(i=0;i<15;i++)//stampa la cartella
{cout<<cartella[i]<<" ";
if((i+1)%5==0)
{cout<<endl;}
}
cout<<endl;
cout<<"Numero 1: ";
cin>>A1;
cout<<"Numero 2: ";
cin>>A2;
cout<<endl;

ambo=0;
for(i=0;i<5;i++)
{ if(A1==cartella[i])
{ambo++;}
if(A2==cartella[i])
{ambo++;}
}
if(ambo==2)
{ambo_fatto++;
}

ambo=0;
for(i=5;i<10;i++)
{
if(A1==cartella[i])
{ambo++;}
if(A2==cartella[i])
{ambo++;}
}
if(ambo==2)
{ambo_fatto++;
}

ambo=0;
for(i=10;i<15;i++)
{
if(A1==cartella[i])
{ambo++;}
if(A2==cartella[i])
{ambo++;}
}
if(ambo==2)
{ambo_fatto++;
}
if(ambo_fatto==1)
{cout<<"AMBO!"<<endl;}
if(ambo_fatto==0)
{cout<<"Non hai vinto"<<endl;}
cout<<endl;
break;

case 3:
cout<<endl;
for(i=0;i<15;i++)//stampa la cartella
{cout<<cartella[i]<<" ";
if((i+1)%5==0)
{cout<<endl;}
}
cout<<endl;
cout<<"Numero 1: ";
cin>>T1;
cout<<"NUmero 2: ";
cin>>T2;
cout<<"Numero 3: ";
cin>>T3;
cout<<endl;
terno=0;

for(i=0;i<5;i++)
{
if(T1==cartella[i])
{terno++;}
if(T2==cartella[i])
{terno++;}
if(T3==cartella[i])
{terno++;}
}
if(terno==3)
{terno_fatto++;}

terno=0;
for(i=5;i<10;i++)
{
if(T1==cartella[i])
{terno++;}
if(T2==cartella[i])
{terno++;}
if(T3==cartella[i])
{terno++;}
}
if(terno==3)
{terno_fatto++;}

terno=0;
for(i=10;i<15;i++)
{
if(T1==cartella[i])
{terno++;}
if(T2==cartella[i])
{terno++;}
if(T3==cartella[i])
{terno++;}
}
if(terno==3)
{terno_fatto++;}

if(terno_fatto==1)
{cout<<"TERNO!"<<endl;}

if(terno_fatto!=1)
{cout<<"Non hai vinto"<<endl;}
cout<<endl;

break;

case 4:
cout<<endl;
for(i=0;i<15;i++)//stampa la cartella
{cout<<cartella[i]<<" ";
if((i+1)%5==0)
{cout<<endl;}
}
cout<<endl;
cout<<"Numero 1: " ;
cin>>Q1;
cout<<"NUmero 2: ";
cin>>Q2;
cout<<"Numero 3: ";
cin>>Q3;
cout<<"NUmero 4: ";
cin>>Q4;
cout<<endl;
quaterna=0;
for(i=0;i<5;i++)
{
if(Q1==cartella[i])
{quaterna++;}
if(Q2==cartella[i])
{quaterna++;}
if(Q3==cartella[i])
{quaterna++;}
if(Q4==cartella[i])
{quaterna++;}
}
if(quaterna==4)
{quaterna_fatta++;}

quaterna=0;
for(i=5;i<10;i++)
{
if(Q1==cartella[i])
{quaterna++;}
if(Q2==cartella[i])
{quaterna++;}
if(Q3==cartella[i])
{quaterna++;}
if(Q4==cartella[i])
{quaterna++;}
}
if(quaterna==4)
{quaterna_fatta++;}

quaterna=0;
for(i=10;i<15;i++)
{
if(Q1==cartella[i])
{quaterna++;}
if(Q2==cartella[i])
{quaterna++;}
if(Q3==cartella[i])
{quaterna++;}
if(Q4==cartella[i])
{quaterna++;}
}
if(quaterna==4)
{quaterna_fatta++;}

if(quaterna_fatta==1)
{cout<<"QUATERNA!"<<endl;
}
if(quaterna_fatta!=1)
{cout<<"Non hai vinto"<<endl;}

cout<<endl;
break;
case 5:
cout<<endl;
for(i=0;i<15;i++)//stampa la cartella
{cout<<cartella[i]<<" ";
if((i+1)%5==0)
{cout<<endl;}
}
cout<<endl;
cout<<"Numero 1: " ;
cin>>C1;
cout<<"Numero 2: ";
cin>>C2;
cout<<"Numero 3: ";
cin>>C3;
cout<<"Numero 4: ";
cin>>C4;
cout<<"Numero 5: ";
cin>>C5;
cout<<endl;
cinquina=0;
for(i=0;i<5;i++)
{
if(C1==cartella[i])
{cinquina++;}
if(C2==cartella[i])
{cinquina++;}
if(C3==cartella[i])
{cinquina++;}
if(C4==cartella[i])
{cinquina++;}
if(C5==cartella[i])
{cinquina++;}
}
if(cinquina==5)
{cinquina_fatta++;}

cinquina=0;
for(i=5;i<10;i++)
{
if(C1==cartella[i])
{cinquina++;}
if(C2==cartella[i])
{cinquina++;}
if(C3==cartella[i])
{cinquina++;}
if(C4==cartella[i])
{cinquina++;}
if(C5==cartella[i])
{cinquina++;}
}
if(cinquina==5)
{cinquina_fatta++;}

cinquina=0;
for(i=10;i<15;i++)
{
if(C1==cartella[i])
{cinquina++;}
if(C2==cartella[i])
{cinquina++;}
if(C3==cartella[i])
{cinquina++;}
if(C4==cartella[i])
{cinquina++;}
if(C5==cartella[i])
{cinquina++;}
}
if(cinquina==5)
{cinquina_fatta++;}

if(cinquina_fatta==1)
{cout<<"CINQUINA!"<<endl;}

if(cinquina_fatta!=1)
{cout<<"Non hai vinto"<<endl;}
break;
cout<<endl;


default:
cout<<"Il numero estratto è "<<numero_estratto[i]<<endl;
cout<<endl;
}

}

}

2 Risposte

  • Re: Problema switch, credo

    Usa i tag CODE per il codice e l'indentazione o non si capisce nulla
  • Re: Problema switch, credo

    L'array cartella non è inizializzato a dovere, devi risolvere la linea 24-26 per la creazione della cartella manca l'indice e poi andare avanti, ci sono diversi errori....
Devi accedere o registrarti per scrivere nel forum
2 risposte