Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com validação de CPF usando ponteiro!


Mathiasi7

Pergunta

Pessoal, preciso fazer um programa com 4 funções, uma delas é verificar se o número digitado, é um CPF válido.

Pra poder testar, fiz a função avulsa, ou seja, fiz ela independente:

Não consigo nem testar a função, fica tela preta.

O código está comentado:

#include<stdlib.h>

#include<stdio.h>

int main ()

{

int *aux;

int *cpf;

int i,k,soma=0,digito1=0,digito2=0;

int cpfdeclarado[11]={0,1,8,1,9,2,8,5,1,5,4};

cpf = (int*) malloc(11* sizeof(int));

aux = (int*) malloc(9* sizeof(int));

for(i=0;i<11;i++)

(*(cpf+i)) = cpfdeclarado; // *cpf recebe os 11 dígitos do cpfdeclarado;

k = 10;

for(i=0;i<9;i++)

{

*(aux+i) =*(cpf+i)*k--; //*aux recebe os valores de cpf vezes K decrementando-se.

soma = ( soma + (*(aux+i))); //variável soma vai incrementando os valores obtidos da operação acima

}

if (soma%11 < 2) //condição pro 1° digito verificador ser 0

digito1=0;

else digito1 = (11 - (soma%11)); //caso não seja < 2, é 11 - o resto

//segund digito

soma = 0;

for (i=0;i<10;i++){

*(aux+i) = *(cpf+i) * k--; //mesma coisa sendo aplicada ao segundo dígito

soma = (soma+ (*(aux+i)));

}

if(soma%11 <2)

digito2 = 0;

else digito2 = ( 11- (soma%11));

//final

if (digito1 == (*(cpf+9))) //verifica se o valor obtido no primeiro digito, bate com a 9 posição do CPF

{

if (digito2 == (*(cpf+10))) //verifica se o valor obtido do segundo dígito, bate com a décima posição do CPF

printf("\nCPF válido\n");

}

else printf("CPF invalido\n");

system("PAUSE");

return 0;

}

Ao executar, não consigo nem testar o programa, pois só me aparece uma tela preta "aperte qualquer tecla para continuar" e fecha a mesma.

Alguém sabe o que pode ser?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...