Mathiasi7 Postado Maio 10, 2012 Denunciar Share Postado Maio 10, 2012 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 digitosoma = 0;for (i=0;i<10;i++){*(aux+i) = *(cpf+i) * k--; //mesma coisa sendo aplicada ao segundo dígitosoma = (soma+ (*(aux+i)));}if(soma%11 <2)digito2 = 0;else digito2 = ( 11- (soma%11));//finalif (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 CPFprintf("\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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mathiasi7
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
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.