Quando do in esecuzione il mio programma, dopo la richiesta se estrarre un numero,
richiamo la funzione estrazione, ma a video non mi viene stampato il numero estratto
ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<string.h>
#include<ctype.h>
#define PEDINE 90
#define RIG 3
#define COL 9
void carica_bussollotto(int tombolino[PEDINE]) // riempie il bussolotto
{
int i;
for(i=0;i<PEDINE;i++)
{
tombolino[i]==(i+1);
}
}
void estrazione(int tombolino[PEDINE]) //eseguo un estrazione dal bussolotto se ! da " " stampa il numero else rieseguo
{
void ordina_tombolino(int tombolino[],int pedine_totali);
int estrai=1+rand()%PEDINE;
int i=0;
int pedine_totali;
int estratto=0;
do
{
i++;
tombolino[estrai]=estrai;// inserisco il numero nell' array
if(tombolino[estrai]!=0) // se i di tombolino è diverso da vuoto o null
{
printf("Il numero estratto è %d\n",estrai);
pedine_totali=PEDINE-i; // diminuisco il size dell' array
tombolino[estrai]=0; // sostistuisco in numero con 0, in modo da non estrarlo
ordina_tombolino( tombolino, pedine_totali); // richiamo funzione ord per sel
}
}while(pedine_totali == 0);
}
void ordina_tombolino(int tombolino[PEDINE], int totali_pedine ) // ordinamento per selezione di max per size decrescente
{
void max_val_ind(int tombolino[], int n, int *max_array, int *i_max);
void scambiare_c(int tombolino[], int array[]);
int i,indice_max;
int max_array;
for(i=totali_pedine-1; i>0; i--)
{
max_val_ind(&tombolino[0],i+1,&max_array,&indice_max);
scambiare_c(&tombolino[i],&tombolino[indice_max]);
}
}
void max_val_ind(int tombolino[], int n, int *max_array, int *i_max)
{
int i;
*max_array= tombolino[0];
*i_max=0;
for(i=1;i<n;i++)
{
if(tombolino[i] > *max_array)
{
*max_array = tombolino[i];
*i_max=1;
}
}
}
void scambiare_c(int *tombolino, int *array)
{
int *temp;
*temp = *tombolino;
*tombolino = *array;
*array = *temp;
}
int main()
{
int tombolino[PEDINE];
char estrai;
srand(time(NULL));
carica_bussollotto(tombolino);
do
{
printf("Vuoi estrarre un numero! S per Si N per NO\n"); // oltre a S accetto anche qualsiasi altro valore tranne N
estrai=getchar();
toupper(estrai);
if(estrai=='S')
{
estrazione(tombolino);
}
if(estrai=='N')
{
printf("!!!Complimenti al vincitore!!!\n");
break;
}
}while(estrai!='N'); // ciclo fin quando non è inserito il valore N
system("PAUSE");
return 0;
}