Sto sviluppando un progetto GTK per l'università. Mi era venuto in mente di fare l'estrazione di una tombola. Quindi ad ogni click di un particolare button viene estratto un numero e a tale numero vengono inserite delle parentesi per indicare il fatto che sia uscito. Tuttavia ho dei problemi nella creazione dei 90 numeri tutti diversi. Ovvero quando clicco il suddetto button,noto che l'interfaccia grafica mi va a visualizzare ad ogni click solo il 90esimo elemento del ciclo for della creazione dei numeri. Quindi ovviamente capitano diverse ripetizioni nel programma. Sperando che mi possiate aiutare allego alcune foto del comportamento ed il codice di quella parte di progetto.Questa parte di progetto è un sottoprogramma che poi richiamo nel main.
void button91_click()
{
GtkWidget *label;
label=GTK_WIDGET(gtk_builder_get_object(builder,"label1"));
int tombola[90];
char str[100]="Il numero estratto e': ";
int a;
int a1,a2;
int n=90;
srand(time(NULL));
for(int i=0;i<n;i++)
{ tombola[i]= rand() %90+1;
a=tombola[i];
for(int j=0;j<i;j++)
{ if(tombola[i]==tombola[j])
i--;
}
}
for(int i=0;i<n;i++)
{
sprintf(&str[22],"%d",tombola[i]);
printf("%d\n ",tombola[i]);
}
gtk_label_set_text(GTK_LABEL(label),str);
char stringa[]="button "; //mi chiama il button da glade
if(a>=10)
{
a1=a/10;
a2=a%10;
stringa[6]=a1+'0';
stringa[7]=a2+'0';
}
else{
stringa[6]=0+'0';
stringa[7]=a+'0';}
GtkWidget *button;
button=GTK_WIDGET(gtk_builder_get_object(builder,stringa));
char stringa2[]="( )";
if(a<10)
{
stringa2[1]=' ';
stringa2[2]=a+'0';
}
else
{
a1=a/10;
a2=a%10;
stringa2[1]=a1+'0';
stringa2[2]=a2+'0';
}
gtk_button_set_label(GTK_BUTTON(button),stringa2);
}