I managed to sort the 3rd array of points but only if the points are entered in a descending order.

Code:

int j;
char tmp[20], tmp2[20];
int posMin, tmp3;
for (j=0; j<cnum-1; j++){
posMin = j;
for (i = j+1; i < cnum; i++)
if (strcmp(cognome[i], cognome[posMin]) < 0)
posMin = i;
strcpy(tmp,cognome[j]);
strcpy(cognome[j],cognome[posMin]);
strcpy(cognome[posMin],tmp);
strcpy(tmp2,nome[j]);
strcpy(nome[j],nome[posMin]);
strcpy(nome[posMin],tmp2);
**
for (i = j+1; i<cnum; i++)
{
if(punteggio[i]>punteggio[posMin])
{
tmp3=punteggio[j];
punteggio[j]=punteggio[posMin];
punteggio[posMin]=tmp3;
}
} **
}

But it doesn't work if it's not in any other order... help?