Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Renan

Digitos verificadores de CPF

Recommended Posts

fala pessoal..

 

eu num manjo quase nd de C...eu programo em php...

e uma amiga fazendo um trabalho da facul..me pediu para ajudar com um algoritimo em C..

o algoritimo tem q retornar os Digitos Verificadores de CPF

ela me mandou isso:

 

#include <stdio.h>
int main(void)
{
	long int CPF, Divisor;
	int Alg, Cont,Dig1,Dig2;
	Divisor = 100000000;
	
	printf("Digite o numero do CPF: ");
	scanf("%i", &CPF);
	
	for(Cont=1;Cont<=9;Cont++)
	{
	  Alg = CPF/Divisor;
	  CPF = CPF%Divisor;
	  Divisor = Divisor/10;
	  Dig1 = Dig1+(Alg*Cont);
	  Dig2 = Dig2+(Alg*(12 - Cont));
	 } 
	 printf("%i",Dig1);
	 Dig1=Dig1%11;
	 Dig2=Dig2+(Dig1*2);
	 Dig2=Dig2*10;
	 Dig2=Dig2%11;
	 if(Dig1==10)
		 Dig1=0;
	 if(Dig2==10)
		 Dig2=0;
		 
	 printf("Os digitos verificadores sao %i e %i",Dig1,Dig2);		
	 
getch();
return(0);
}

eu to apertadão no trabalho aki..ainda num tive tempo de ver com calma..

mas alguém que manja de C sabe o q está acontecendo de errado no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
int main(void)
{
	long int CPF, Divisor;
	int Alg, Cont,Dig1,Dig2;
	Dig1 = 0;
	Dig2 = 0;
	Divisor = 100000000;
	
	printf("Digite o numero do CPF: ");
	scanf("%i", &CPF);
	
	for(Cont=1;Cont<=9;Cont++)
	{
	  Alg = CPF/Divisor;
	  CPF = CPF%Divisor;
	  Divisor = Divisor/10;
	  Dig1 = Dig1+(Alg*Cont);
	  Dig2 = Dig2+(Alg*(12 - Cont));
	 } 
	 
	 Dig1=Dig1%11;
	 Dig2=Dig2+(Dig1*2);
	 Dig2=Dig2*10;
	 Dig2=Dig2%11;
	 if(Dig1==10)
		 Dig1=0;
	 if(Dig2==10)
		 Dig2=0;
		 
	 printf("Os digitos verificadores sao %i e %i",Dig1,Dig2);		
	 
getch();
return(0);
}

parece q deu certo agora...

 

vejam ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.