Ir ao conteúdo
  • Cadastre-se

Validação de CPF


Gabs Veiga

Posts recomendados

Boa noite, sou iniciante em programação e meu professor me passou o seguinte exercício: criar um algoritmo que verificasse se era válido ou não o cpf que o usuário digitasse. Porém sempre que eu digito o cpf, mesmo este sendo válido, o programa mostra que é inválido. O que eu poderia fazer para que não aparecesse mais a opção "cpf inválido"? Desde já agradeço.

Gabriela

#include<stdio.h>#include<ctype.h>#include<string.h>#include<windows.h>main(){	printf("Cadastro\n\n");		char cpf[11];		int i, n, a, a1, a2, b, b1, b2, d1, d2, x, y, z, cpfi[11], k;		printf("\nDigite seu CPF: ");	gets(cpf);	//puts(cpf);		//converte a string cpf[i] para um valor inteiro (int)	for(i=0;i<11;i++){		if(cpf[i]==48){			cpfi[i]=0;		}		if(cpf[i]==49){			cpfi[i]=1;		}		if(cpf[i]==50){			cpfi[i]=2;		}		if(cpf[i]==51){			cpfi[i]=3;		}		if(cpf[i]==52){			cpfi[i]=4;		}		if(cpf[i]==53){			cpfi[i]=5;		}		if(cpf[i]==54){			cpfi[i]=6;		}		if(cpf[i]==55){			cpfi[i]=7;		}		if(cpf[i]==56){			cpfi[i]=8;		}		if(cpf[i]==57){			cpfi[i]=9;		}	}		a1=10;	for(i=0;i<9;i++){		x=cpfi[i+1]*a1;		a+=x;		a1--;	}	k=a%11;	if(k>2||k==2){		a2=a%11;		d1=11-a2;	}	else{		d1=0;	}	b1=11;	for(i=0;i<10;i++){		y=cpfi[i+1]*b1;		b+=y;		b1--;	}	k=b%11;	if(k>2||k==2){		b2=b%11;		d2=11-b2;	}	else{		d2=0;	}		if(d1==cpfi[9]&&cpfi[10]==d2){		printf("\nCPF v\240lido!");	}	else{		printf("\nCPF inv\240lido!");		}}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!