#include <stdio.h>
main(){
int cpf[11],i,p,d1,d2;
for(i=1;i<=11;i++){
printf("Digite o CPF:"
scanf("%d",&cpf[i]);
}
for(i=1;i<9;i++){
p+=cpf[i]*(11-i);
}
d1=p%11;
if(d1<2){
d1=0;
}
else{
d1=11-d1;
}
p=0;
for(i=1;i<9;i++){
p+=cpf[i]*(12-i);
}
d2=(p+(d1*2))%11;
if(d2<2){
d2=0;
}
else{
d2=d2-11;
}
if(cpf[10]==d1&&cpf[11]==d2){
printf("CPF Valido\n"
}
else{
printf("CPF Invalido"
}
}

NQuestions22
Novo Membro
Registrado
9 Mensagens
0 Curtidas
Programa em C que lê CPF usando vetor e laços de repetição
#1 Por NQuestions22
09/10/2020 - 17:28
Olá! Estou tendo muita dificuldade em elaborar um programa que verifica se um CPF é válido ou não. Eu já fiz uma versão desse programa anteriormente, só que agora, obrigatoriamente, tenho que elaborar o código utilizando laços de repetição, além de ler os números do CPF de maneira isolada e armazená-los em um vetor. Já tentei mudar diversas coisas, mas o programa continua atestando que o CPF é inválido. Por meio de um printf, já conferi a posição dos números do CPF nos vetores e esse não é o problema. No entanto, acredito que o problema, ao menos no cálculo do primeiro dígito verificador, parte de p+=cpf*(11-i), mas não tenho ideia do que está errado e de como corrigir. Alguém sabe qual o problema? Agradeço desde já.