Jump to content
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

Question

#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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...