Validação de NIF em C++

Algoritmo de validação de um NIF em C++

/*Biblioteca padrão de C para Inputs e Outputs*/
#include
/*Todas as variáveis estão colocadas como variáveis globais*/
int nif, n, nif_d[8], resultado;

int main(){

//Solicitar ao utilizador o NIF
printf("Insira o seu NIF \n");

//Ler o NIF escrito pelo utilizador
scanf("%d",&nif);

//Separação dos dígitos do NIF
for(n=9;n>=1;n--){
nif_d[n]=nif%10;
nif/=10;
}

//Cálculo do resto
resultado=(9*nif_d[1]+8*nif_d[2]+7*nif_d[3]+6*nif_d[4]+5*nif_d[5]+4*nif_d[6]+
3*nif_d[7]+2*nif_d[8])%11;

// Verificação do tamanho do NIF, validação dos primeiros dígitos e dos dígitos de controlo
if((nif>99999999&&nif<=999999999)||(nif_d[1]==1 || nif_d[1]==2 || nif_d[1]==5 || nif_d[1]==6 || nif_d[1]==8 || nif_d[1]==9)&&(resultado>1&&nif_d[9]==11-resultado)||((resultado==0||resultado==1)&&nif_d[9]==0)){
printf("O NIF é válido");
}
else{
printf("O NIF não é válido");
}
return 0;
}

Leave a Reply

Your email address will not be published. Required fields are marked *