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

Estou fazendo um projeto para validar o cpf mas esta dando erro na hora que pergunta se o usuário quer continuar e o segundo cpf sempre da negativo, como posso arrumar?


Ana Cerqueira

Pergunta

#include<stdio.h>
#include <stdlib.h>
#include <math.h>

int linha[2][9], x, y=10,z=11, cpf[11], validados=0, invalidados=0, tot=0, a, d1, d2,b, linha2[2][10];
int vzs[9], vzs2[10];
int resposta, resposta2, cont, sn;
char final;
 int main(){
     a=0;
     b=0;
     final=0;
     printf("\n-------OLA USUARIO, ESSE PROGRAMA IR FAZER A VALIDACAO DO CPF DIGITADO-------\n\n");
     printf("Deseja continuar s/n: \n");
        scanf("%c", &final); 
     system("pause");
     system("cls");
      printf("\n-------OLA USUARIO, ESSE PROGRAMA IR FAZER A VALIDACAO DO CPF DIGITADO-------\n\n");
     
     
     do{
 //distribui os numeros no vetor x
    for ( x=0; x<11; x++ )
     {
      printf ("\nDigite cada numero do seu CPF[%d] : ",  x);
      scanf ("%d", &cpf[x]);
      //teste se x menor que 9 ou maior 9 não aceita
   while((cpf[x] < 0) || ( cpf[x] > 9))
              {
      printf("\nNumero invalidao!");
      printf ("\nDigite cada numero (positivo) e menos que 9 do seu CPF[%d] : ",  x);
      scanf ("%d", &cpf[x]);
              }  
    }
    //passa cpf[x] digitado de 0 a 9 para uma matriz[0] e matriz[1] recebe numeros de 10 a 2 para serem multiplicados entre as matrizes       
     for(x=0; x<9; x++){
         linha[0][x]=cpf[x];
         linha[1][x]=y;
         //10,9,8,7,6,5,4,3,2
         
         //multiplicacao das matrizes
         vzs[x]=linha[0][x]*linha[1][x];
         y--;
      
                        }
//soma a multiplicacao e adiciona na variavel 'a'
  for(x=0; x<9; x++){

     a= a+vzs[x];
     
  
 }
 //teste digito 1
 resposta= a%11;        
 if(resposta<2){
     d1=0;
 }
 else{
     d1=11-resposta;
 }
 
 if (d1==cpf[9]){
     printf("Digito %d do CPF correto\n", d1);
 }else{
     printf("\nCpf não valido ");
 }
 
 //digito 2      
   for(x=0; x<10; x++){
         linha2[0][x]=cpf[x];
         linha2[1][x]=z;
         //11,10,9,8,7,6,5,4,3,2
         
         //multiplicacao das matrizes
         vzs2[x]=linha2[0][x]*linha2[1][x];
         z--;
      
                        }
//soma a multiplicacao e adiciona na variavel 'a'
  for(x=0; x<10; x++){

     b= b+vzs2[x];
     
  
 }
 //teste digito 2
 resposta2= b%11;        
 if(resposta2<2){
     d2=0;
 }
 else{
     d2=11-resposta2;
 }

 if (d2==cpf[10]){
     printf("Digito %d do CPF correto\n", d2);
     
 }else{
     printf("\nCpf não valido ");
 }
        if((d2==cpf[10])&&(d1==cpf[9])){
            printf("CPF correto\n");
            validados++;
            tot++;
        }else{
            printf("CPF invalido\n");
            invalidados++;
        }
        system("pause");
        system ("cls");
    printf("Deseja continuar s/n: \n");
        scanf("%c", &final);
}while(final == 's');

printf("\n%d\n", validados);
            printf("\n%d\n", invalidados);
                printf("\n%d\n", tot);
         }

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...