Per calcolare la lettera di controllo, ovvero quella finale in un codice fiscale, ho le seguenti variabili :
codicefiscale[16] //in cui é contenuto un codice fiscale
lettere[40]={'a','b','c','d','e','f','g','h','i','j','k','l', 'm','n','o','p','q','r','s','t','u','v','w','x','y ','z','0','1','2','3','4','5','6','7','8','9'};
//non sono 40, comunque ho messo le lettere e i numeri
int numparilett[40]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1 9,20,21,22,23,24,25,0,1,2,3,4,5,6,7,8,9} //contiene tutti i valori che ha ogni lettera o numeri di posto pari nel codice fiscale. Ad esempio la a vale 0, la b 1, ecc.
numdisplett[40]={1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,1 4,16,10,22,25,24,23,1,0,5,7,9,13,15,17,19,21}; //Stessa cosa per i dispari
ho fatto così :
codice:
//somma pari
void funzcontrollo()
{
for(i=0;i<15;i++)
{
for(j=0;j<llettere;j++)
{
//if((lettere[j]==codicefiscale[i])||(numparilett[j]==codicefiscale[i]))
if((codicefiscale[i]==lettere[j])||(codicefiscale[i]==numparilett[j]))
{
cpari=cpari+numparilett[j];
printf("%d , ",numparilett[j]);
}
i++;
}
}
printf("\n %d \n",cpari);
for(j=0;j<llettere;j++)
{
for(i=0;i<15;i++)
{
if((lettere[j]==codicefiscale[i])||(numparilett[j]==codicefiscale[i]))
{
cdisp=cdisp+numdisplett[j];
printf("%d , ",numdisplett[j]);
}
i++;
}
}
printf("\n %d \n",cdisp);
}
Praticamente sommo il valore di quelli di posizione dispari e di quelli pari..ma non mi da il valore giusto !!Potreste aiutarmi? ^^" grazie !