Ir ao conteúdo

Posts recomendados

Postado

Olá, tenho uma dúvida em relação a separar os caracteres para posteriormente usa-los individualmentes. 

Ex: 264362, separa-lo e multiplicar o primeiro caractere por 4 o segundo por 5 e assim por diante...

Tentei usar String, mas tive dificuldade de visualizar.

Desde já, muito obtigada !!!

  • Curtir 1
Postado

Boa Tarde,

 

Se gavou em ‘string’, já estão separados na memória e possíveis de acessar, individualmente, pelo ponteiro.

 

Mostra como tu fizeste!

"

  • Curtir 1
Postado
#include <stdio.h>
#include <stdlib.h>

int main(void){

int soma1, resto1;
char CPF[11];

printf("Insira o CPF (SEM PONTUACAO) para a validacao:");
scanf("s", &CPF);
printf("\nValidando...\n"); 
 
	
	
soma1 == CPF[1]*10 + CPF[2]*9 + CPF[3]*8 +CPF[4]*7 + CPF[5]*6 + CPF[6]*5 +CPF[7]*4 + CPF[8]*3 + CPF[9]*2;
resto1 == (soma1*10)/11;

if(resto1 == 10) resto1=1;
	
printf("%f", resto1);	
	
	
system("pause");
return 0;	
}

 

agora, Sskrainer disse:

#include <stdio.h>
#include <stdlib.h>

int main(void){

int soma1, resto1;
char CPF[11];

printf("Insira o CPF (SEM PONTUACAO) para a validacao:");
scanf("s", &CPF);
printf("\nValidando...\n"); 
 
	
	
soma1 == CPF[1]*10 + CPF[2]*9 + CPF[3]*8 +CPF[4]*7 + CPF[5]*6 + CPF[6]*5 +CPF[7]*4 + CPF[8]*3 + CPF[9]*2;
resto1 == (soma1*10)/11;

if(resto1 == 10) resto1=1;
	
printf("%f", resto1);	
	
	
system("pause");
return 0;	
}

 

Não sei o que está dando errado...

 

  • Curtir 1
Postado
44 minutos atrás, Sskrainer disse:

scanf("s", &CPF);

No primeiro argumento do scanf faltou o operador %. E como você quer ler uma string não use o operador &.

 

scanf("%s", CPF);

 

44 minutos atrás, Sskrainer disse:

soma1 == CPF[1]*10 + CPF[2]*9...

Em C o operador de atribuição é o = e o de comparação é == (duplo). Então aí você tem que usar apenas um = para atribuir. Outra coisa é o acesso aos caracteres de uma string, aí você está começando pelo índice 1 (CPF[1]). O primeiro elemento de uma string é 0, então essa linha teria que começar assim,

 

soma1 = CPF[0]*10 + CPF[1]*9... 

 

Mas tem mais um detalhe, assim você estará calculando char com número, então teria converter o char para número, pode ser assim.

 

soma1 = (CPF[0]-'0')*10 + (CPF[1]-'0')*9... 

 

Seria mais fácil usar um loop aí em vez de digitar um por um.

 

44 minutos atrás, Sskrainer disse:

resto1 == (soma1*10)/11;

Cometeu o mesmo erro da atribuição da soma ao usar o operador de comparação no lugar da atribuição. E a variável resto está declarada como int, não devia ser float?

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...