Salve a tutti. Devo svolgere un problemino in C.
La traccia è questa:
L’algoritmo simula 5 giocatori, ognuno con una cartella. Ogni cartella deve essere costruita a caso dall’algoritmo e assegnata a un giocatore. Una cartella della tombola è formata da tre righe, ognuna con 5 numeri; in ogni riga può esserci un solo numero per ogni decina (si ricorda che la tombola considera i numeri da 1 a 90); inoltre, in una cartella non possono esserci numeri duplicati. Dopo aver generato le cartelle, l’algoritmo simula l’estrazione in sequenza (a caso) di un numero dal cestello (ovvero l’algoritmo genera a caso un numero intero tra 1 e 90, evitando di generare due volte lo stesso numero) e termina quando uno dei giocatori fa tombola, visualizzando il nome del giocatore. L’algoritmo visualizza anche il giocatore che ha fatto ambo, il giocatore che ha fatto terno, il giocatore che ha fatto quaterna, il giocatore che ha fatto quintina. L’algoritmo deve anche visualizzare le cartelle di tutti i giocatori sia all’inizio sia dopo l’occorrenza di ambo, terno, quaterna, quintina e tombola.
Il codice che ho scritto fin'ora, per la generazione delle cartelle, è il seguente:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main() {
int T[90], C[3][6], GA[3][6], GB[3][6], GC[3][6], GD[3][6], GE[3][6], Cn[9], VIT[5][3]; //Tabellone, Cartella base, Giocatori A, B, C, D, E, Colonne occupate, Vit
int i, j, k, V=0, num, col=1, rig=1, gioc=1, Vin, n,temp; //Indici i, j, k; Indicatore vincite già effettuate (1=ambo, 2=terno, 3=quat,4=cinq,5=tombola); Numero estratto, Colonna, riga, giocatore
//Azzera gli array
for (i=0;i<3;i++)
{
for (j=0;j<6;j++)
{
C[i][j]=0;
GA[i][j]=0;
GB[i][j]=0;
GC[i][j]=0;
GD[i][j]=0;
GE[i][j]=0;
}
}
for (i=0;i<3;i++)
{
printf("\n");
for (j=0;j<6;j++)
{
printf("%d ",C[i][j]);
}
}
//Riempi T da 1 a 90
for (i=1; i<91; i++)
{
T[i] = i;
printf("%d ",T[i]);
}
srand(time(NULL)); //Definisco il seed
A:
for (i=0; i<3; i++)
{
k = 1;
while (k<6) {
AA:
num = 1+rand()%90;
if (T[num] == 0) {goto AA;}
for (j=0; j<5; j++)
{
Vin = (num/10)+1;
if (num=90) {Vin=8;}
if (Cn[Vin] == 1) {goto AA;}
Cn[Vin] = 1;
C[i][k] = num;
k++;
printf("K = %d",k);
}
}
T[num] = 0;
//INIZIO
printf("Tab dopo:\n");
for (j=1;j<91;j++)
{
printf("%d ",T[j]);
} //FINE
}
system("PAUSE");
}
Arriva a K = 2 e si blocca... non mi mostra messaggi, semplicemente la console application non va avanti. Come devo fare? Dov'è l'errore?
Grazie