estou por fazer um programa que gera os dois dígitos do CPF após o usuário digitar os 9 iniciais, acontece que estou com um gargalo na linha 34, acontece que o programa está executando a multiplicação de forma incorreta, ao executar o teste e digitar: 123456789 ao invés de me retornar "210" o programa retorna sempre "2430", conto com a ajuda de vocês, obrigado:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int cpf[9];
int i,j;
int soma = 0;
char char_cpf[9];
int cpfOk;
printf("Informe o valor dos 9 primeiros digitos do CPF:\n");
gets(char_cpf);
for(i=0; i<9; i++){
if (char_cpf >= 48 && char_cpf <= 58){ // garante que foi digitado somente numeros entre 0 e 9
cpf = char_cpf - 48; // transforma o caracter '0' no inteiro 0
} // (48 é a posição de '0' na tabela ASCII)
else{
printf("não foi informado o cpf corretamente.\n");
cpfOk = 0; //controle para informar que o cpf possui um caractere invalido
}
}
Pergunta
dos.santos.jr
E ai glra,
estou por fazer um programa que gera os dois dígitos do CPF após o usuário digitar os 9 iniciais, acontece que estou com um gargalo na linha 34, acontece que o programa está executando a multiplicação de forma incorreta, ao executar o teste e digitar: 123456789 ao invés de me retornar "210" o programa retorna sempre "2430", conto com a ajuda de vocês, obrigado:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int cpf[9];
int i,j;
int soma = 0;
char char_cpf[9];
int cpfOk;
printf("Informe o valor dos 9 primeiros digitos do CPF:\n");
gets(char_cpf);
for(i=0; i<9; i++){
if (char_cpf >= 48 && char_cpf <= 58){ // garante que foi digitado somente numeros entre 0 e 9
cpf = char_cpf - 48; // transforma o caracter '0' no inteiro 0
} // (48 é a posição de '0' na tabela ASCII)
else{
printf("não foi informado o cpf corretamente.\n");
cpfOk = 0; //controle para informar que o cpf possui um caractere invalido
}
}
if(cpfOk){
for(i=0; i<9; i++)
printf("%d-",cpf);
}
printf("\n");
for(i=0;i<9;i++){
for(j=10;j>=2;j--){ //troquei o ";" por chaves
Linha 34 soma = (j * cpf) + soma;
}
}
printf(" - Soma = %d\n", soma);
system("pause");
return 0;
}
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.