validaCPF
Publicado por rafael farias novaes 01/02/2009
[ Hits: 7.416 ]
Homepage: http://www.vivaolinux.com.br/perfil/verPerfil.php?login=bfmano
Valida o CPF.
/* Name: Aramis K Kaminski Copyright: Aramis K Kaminski Author: ramis K Kaminski Date: 16/04/08 23:02 Description: Função valida CPF */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <conio.h> //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////Declara Funções////////////////////////////////// int validaCPF(char cpf[11]); //////////////////////////////FIM de Declaração///////////////////////////////// /////////////////////////////Inicio do MAIN///////////////////////////////////// int main() { char cpf[11]; int i,validade; printf("Digite o CPF a ser validado : "); for(i=0; i<11; i++) { cpf[i]=getche(); if(i==8) { printf("-"); } } validade=validaCPF(cpf); if(validade==1) printf("\tCPF DIGITADO E VALIDO\n\n"); else printf("\tCPF DIGITADO NAO E VALIDO\n\n"); system("pause"); return 0; } //////////////////////////////FIM do MAIN/////////////////////////////////////// //////////////////////////Inicio da Função validaCPF//////////////////////////// /*CONVERTE DE CHAR PARA INT*/ int validaCPF(char cpf[11]) {int i=0,k,j,validade,soma=0,cpf2[11],cpf3[9],cpf2_1[10],cpfdv[11]; char aux[1]; for(i=0; i<11; i++) { aux[0]=cpf[i]; cpf2[i]=atoi(aux); } printf("\n\n"); ////////////////////////////////////////////////////////// /*IMPRIMI O CPF DIGITADO*/ printf("O CPF digitado foi : "); for(i=0; i<11; i++) { printf("%d",cpf2[i]); if(i==8) { printf("-"); } } printf("\n\n"); ////////////////////////////////////////////////////////// /*FAZ O CALCULO DO PRIMEIRO DV*/ i=0; for(k=10; k>1; k--) { cpf3[i]=cpf2[i]*k; soma=soma+cpf3[i]; i++; } soma=soma%11; soma=11-soma; //////////////////////////////////////////////////////////// for(i=0; i<9; i++) { cpf2_1[i]=cpf2[i]; } /////////////////////////////////////////////////////////// cpf2_1[9]=soma; soma=0; /////////////////////////////////////////////////////////// /*FAZ O CALCULO DO SEGUNDO DV*/ i=0; for(j=11; j>1; j-- ) { cpf3[i]=cpf2_1[i]*k; soma=soma+cpf3[i]; i++; } soma=soma%11; soma=11-soma; cpf2_1[10]=soma; ///////////////////////////////////////////////////////////// /*VERIFICA SE O CPF NAO TEM NUMEROS REPITIDOS*/ int num=0,num1=0; for(i=0; i<9; i++) { for(num1=1; num1<12; num1++) { for(num=0; num<11; num++) { cpfdv[num]=num1; if(cpf2[0] == cpfdv[0] && cpf2[1] == cpfdv[1]) if(cpf2[2] == cpfdv[2] && cpf2[3] == cpfdv[3]) if(cpf2[3] == cpfdv[3] && cpf2[4] == cpfdv[4]) if(cpf2[5] == cpfdv[5] && cpf2[6] == cpfdv[6]) if(cpf2[7] == cpfdv[7] && cpf2[8] == cpfdv[8]) if(cpf2[9] == cpfdv[9] && cpf2[10] == cpfdv[10]) return (validade=0); } } } /////////////////////////////////////////////////////////////// /* VERIFICA OS DV E RETORNA 0 OU 1*/ if(cpf2[9] == cpf2_1[9] && cpf2[10] == cpf2_1[10]) validade=1; else validade=0; return (validade); }
Divisores simultâneos de 2 números
Estrutura de dados em C -> Fila Circular com operador módulo
C --> Calculadora de equações de 2º grau explicada.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (2)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)