Salve. Ho un problema col mio codice...
Al momento del build che Code Blocks attua, visualizzo il seguente messaggio di "Attenzione" in tutte le righe in cui è presente il vettore vinc (di tipo char):
"Warning: assignment makes integer from pointer without a cast [enabled by default]"
In tutte le righe di codice in cui, invece, utilizzo l'istruzione strcpy sul vettore vinc, visualizzo invece questo messaggio:
"Warning: passing argument 2 of 'strcpy' makes pointer from integer without a cast [enabled by default]"
Non riesco a capire quale sia il problema, in quanto per passare un vettore nei parametri della funzione non ci dovrebbe esser bisogno di puntatori per modificarlo. E inoltre Non capisco il messaggio sugli strcpy: vinc (di tipo char) dovrebbe assumere esattamente il valore di un altro vettore di tipo char!
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
#define dim 5
void ordin (char vinc[], int vincit[])
{
int i, c, app;
char app1[20];
for (i=1;i<dim;i++)
{
app=vincit[i];
strcpy(app1,vinc[i]);
for (c=i-1;(c>=0) && (vincit[c]>app);c--)
{
vincit[c+1]=vincit[c];
strcpy(vinc[c+1], vinc[c]);
}
vincit[c+1]=app;
vinc[c+1]=app1;
}
}
void random(int x[], int jolly[])
{
srand(time(NULL));
int c, z=0, s=0;
bool trovato=false;
for(c=0;c<7;c++)
x[c]=rand()%90+1;
do
{
for(s=0;s<7;s++)
{
if(x[z-1]==x[s])
trovato=true;
if(trovato==true)
{
trovato=false;
x[z]=rand()%90+1;
}
}
z++;
}while(z<7);
}
void vincitori(int n1[], int n2[], int n3[], int n4[], int n5[], int n6[], int jolly[], int x[], char nom[])
{
int i=0,c, z=0, w=0, u=0;
char vinc[10][20];
int vincit[10];
do
{
for(c=0;c<7;c++)
{
if(n1[z]==x[c] && n2[z]==x[c] && n3[z]==x[c] && n4[z]==x[c] && n5[z]==x[c] && n6[z]==x[c])
{
strcpy(vinc[c], nom[c]);
vincit[c]=7;
i++;
w++;
}
}
for(c=0;c<7;c++)
{
if(n1[z]==x[c] && n2[z]==x[c] && n3[z]==x[c] && n4[z]==x[c] && n5[z]==x[c] && jolly[c]==x[6])
{
strcpy(vinc[c], nom[c]);
vincit[c]=6;
i++;
w++;
}
}
for(c=0;c<7;c++)
{
if(n1[z]==x[c] && n2[z]==x[c] && n3[z]==x[c] && n4[z]==x[c])
{
strcpy(vinc[c], nom[c]);
vincit[c]=4;
i++;
w++;
}
}
for(c=0;c<7;c++)
{
if(n1[z]==x[c] && n2[z]==x[c] && n3[z]==x[c])
{
strcpy(vinc[c], nom[c]);
vincit[c]=3;
i++;
w++;
}
}
z++;
}while(z==7);
ordin(vinc, vincit);
printf("Vincitori: \n");
for(u=0;u<=w;u++)
{
printf("%c \t %i", vinc[u],vincit[u]);
}
}
int main()
{
int n1[dim],n2[dim],n3[dim],n4[dim],n5[dim],n6[dim],jolly[dim],x[6];
char nom[dim][20], risp;
int i=0;
random(x, jolly);
do
{
printf("Nome: ");
scanf("%s", nom[i]);
printf("Inserisci sei numeri separati dallo spazio: ");
scanf("%i %i %i %i %i %i", &n1[i], &n2[i], &n3[i], &n4[i], &n5[i], &n6[i]);
printf("Inserisci Jolly: ");
scanf("%i", &jolly[i]);
printf("Continuare? s/n: ");
scanf("\n%c", &risp);
i++;
}while(risp=='s' || risp=='S');
vincitori(n1, n2, n3, n4, n5, n6, jolly, x, nom);
}