ratt_siffra = 10 - ((summa - tal) % 10);
if (ratt_siffra == 10) ratt_siffra = 0;
tror jag...
Någon här som vet hur man beräknar den rätta kontrollsiffran i ett
personnummer från följande kod ?
Jag vill alltså kunna räkna ut den rätta kontrollsiffran för personnummret om
personnummret de slagit in är felaktig.
Skriv gärna in koden i programmet med en lämplig kommentar.
----------------------------------------------------------------------
-------------
#include <iostream>
using namespace std;
#include <iomanip>
char persNr[12];
int summa=0,check,tal;
void main()
{
cout<<"Person Nummer kontroll"<<endl<<endl<<"Detta program kontrollerar om ett
personnummer är riktigt"
<<endl<<"Skriv in ett personnummer pa formen 770614-2051"
<<endl<<"> ";
cin.getline(persNr,12);
for(int i=0 ; i<=10 ; i++)
{
tal=0;
if(i==6) i++;
check=i;
if(i>=7) check--;
if( ( (check+2) %2 )==0 ) tal=(persNr*-48)*2;
else tal=persNr*-48;
if( tal>=10 ) tal=(tal-10)+1;
summa+=tal;
}
check=summa/10;
check*=10;
if(summa==check)
{
cout<<endl<<"Kontrollsiffran är rätt"<<endl;
}
else
cout<<endl<<"Kontrollsiffran felaktig, rätt siffra är " <<endl;
}
----------------------------------------------------------------------
------------**