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?
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++){
Pergunta
Ana Cerqueira
#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
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.