ren811

CalculaDigitosCPF

Nov 14th, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. int processaCPF(int CPFP[], int digito, int etapa, int aumenta)
  4. {
  5.     int j;
  6.     int soma = 0;
  7.     for (j=0;j<etapa;j++){
  8.         soma = soma + CPFP[j] * aumenta;
  9.         printf("\nSoma atual = %d\nDigito atual = %d\nAumenta = %d",soma,CPFP[j],aumenta);
  10.         aumenta--;
  11.     }
  12.     if (soma%11 < 2){
  13.         CPFP[digito] = 0;
  14.         printf("\nDIGITO = %d",CPFP[digito]);
  15.     }
  16.     if (soma%11 >= 2){
  17.         CPFP[digito] = 11 - (soma%11);
  18.         printf("\nDIGITO = %d",CPFP[digito]);
  19.     }
  20. }
  21.  
  22. int main()
  23. {
  24.     int controle = 1;
  25.     while (controle == 1){
  26.         int i;
  27.         char cpf[11] = {"           "};
  28.         int CPFP[11] = {0,0,0,0,0,0,0,0,0};
  29.         int digito = 9;
  30.         int etapa = 9;
  31.         int aumenta = 10;
  32.     printf("\nDigita o CPF (9 caracteres):\n");
  33.     gets(cpf);
  34.     for (i=0;i<etapa;i++){
  35.         CPFP[i] = (int)cpf[i] - 48;
  36.     }
  37.     processaCPF(CPFP,digito,etapa,aumenta); // primeiro digito
  38.     digito++; etapa++; aumenta = 11;
  39.     printf("\n================\n");
  40.     processaCPF(CPFP,digito,etapa,aumenta); // segundo digito
  41.     printf("\nCodigo verificador igual a %d%d",CPFP[9],CPFP[10]);
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment