|
![]() |
||
Ler Números em sequência em Linguagem C
|
||
. Nós temos 759.307 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) | |
|
Super Participante
Registrado em: Feb 2008
Mensagens: 522
Reputação: 9
![]() |
Ola a todos
Gostaria de ler uma sequencia de Números que o usuário digita-se, por exemplo, nº agência de um banco: Digite o Número da Conta: 9687-3 (enter) mais com a linha abaixo, não consigo fazer dessa forma, apenas funciona se o usuário digitar um número e apertar enter, outro número enter.... Citação:
Abraços
__________________
Athlon XP 1700 + Mobo: PCchips 810LR HD: Samsung 40 Gb 768mb ram ( 1x256mb, 1x512mb) Arch Linux + xfce4 Trekking Cohab II - São Paulo - Brasil http://trilhastdz.multiply.com/ |
|
|
|
|
|
|
#2 (permalink) |
|
Tô em todas
Registrado em: Apr 2002
Localização: Paulista/PE
Mensagens: 1.642
Reputação: 525
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
leia como string o numero da conta, como número fica dificil por causa do "-".
Depois que ler como string, fica fácil converter, se precisar. |
|
|
|
|
|
#3 (permalink) |
|
Super Participante
Registrado em: Feb 2008
Mensagens: 522
Reputação: 9
![]() |
Obrigado intruso pela resposta !
Mais depois eu preciso passar para numeros inteiros, pois haverá calculo com o numero ! como faço isso ? Abraços
__________________
Athlon XP 1700 + Mobo: PCchips 810LR HD: Samsung 40 Gb 768mb ram ( 1x256mb, 1x512mb) Arch Linux + xfce4 Trekking Cohab II - São Paulo - Brasil http://trilhastdz.multiply.com/ |
|
|
|
|
|
#4 (permalink) |
|
Veterano
Registrado em: Jun 2006
Localização: Brasil
Mensagens: 1.212
Reputação: 20
![]() ![]() ![]() ![]() ![]() ![]() |
Pode usar atoi.
|
|
|
|
|
|
#5 (permalink) | |
|
Membro Senior
Registrado em: Nov 2008
Localização: RS-Brasil
Mensagens: 191
Reputação: 8
![]() |
Citação:
Se for o caso deve ter uma função que faça isso, mas quando eu também deparei com um problema semelhante criei uma função para essa conversão, nada muito complicado só um pouco de lógica binária e uma tabela ASCII. espero respostas, flw!
__________________
http://www.wfbombardellis.xpg.com.br/ |
|
|
|
|
|
|
#6 (permalink) | |
|
Super Participante
Registrado em: Feb 2008
Mensagens: 522
Reputação: 9
![]() |
Citação:
Por exemplo: Digite o Ano de Nascimento: 1985 (enter) preciso que o a=1, b=9, c=8, d=9 Abraços
__________________
Athlon XP 1700 + Mobo: PCchips 810LR HD: Samsung 40 Gb 768mb ram ( 1x256mb, 1x512mb) Arch Linux + xfce4 Trekking Cohab II - São Paulo - Brasil http://trilhastdz.multiply.com/ |
|
|
|
|
|
|
#7 (permalink) |
|
Membro Senior
Registrado em: Jan 2008
Mensagens: 342
Reputação: 12
![]() ![]() ![]() |
Veja se você consegue entender esse código:
Código:
|
|
|
|
|
|
#8 (permalink) |
|
Super Participante
Registrado em: Feb 2008
Mensagens: 522
Reputação: 9
![]() |
Ola a todos
Não entendi o seguinte. Código:
Código:
__________________
Athlon XP 1700 + Mobo: PCchips 810LR HD: Samsung 40 Gb 768mb ram ( 1x256mb, 1x512mb) Arch Linux + xfce4 Trekking Cohab II - São Paulo - Brasil http://trilhastdz.multiply.com/ |
|
|
|
|
|
#9 (permalink) |
|
Membro Senior
Registrado em: Jan 2008
Mensagens: 342
Reputação: 12
![]() ![]() ![]() |
1º sim é isso
2º sim no maximo 10 //se quiser pode almentar 3º uma string é compasta por varios "chars" e terminada com o char "\0", cada "char" é equivalente a um numero na tabela "asc", os caracteres de 0 a 9 correspondem ao valor "asc" de 48 até 57. Com isso foi usado um "if" para pegar somente os caracteres numericos. Compila o código e veja se é isso que você quer fazer: Código:
|
|
|
|
|
|
#10 (permalink) | |
|
Veterano
Registrado em: Jun 2006
Localização: Brasil
Mensagens: 1.212
Reputação: 20
![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
O fato de haverem vários números na string não invalida a utilidade de atoi, um pouquinho de lógica resolve a questão. |
|
|
|
|
|
|
#11 (permalink) | |
|
Super Participante
Registrado em: Feb 2008
Mensagens: 522
Reputação: 9
![]() |
Ola a todos
br_branco Essa parte eu não entendi: Citação:
o Certo seria somar 1+9+8+4 = r <=> r%=5. De acordo com o resto da divisão, mostrar o "perfil" da pessoa, então sempre que eu digitar 1985, deveria ser 4 = Irresistivel. Eu tentei corrigir o código mais não consegui, mais não se preocupe em fazer o código, pois o mais importante já foi solucionado, que era a questão das strings "viraren" números inteiros. Apesar de achar complicado, talvez me falte aprender alguns conceitos que não vi. Obrigado a todos que ajudaram ! ![]() Abraços
__________________
Athlon XP 1700 + Mobo: PCchips 810LR HD: Samsung 40 Gb 768mb ram ( 1x256mb, 1x512mb) Arch Linux + xfce4 Trekking Cohab II - São Paulo - Brasil http://trilhastdz.multiply.com/ |
|
|
|
|
|
|
#12 (permalink) |
|
Membro Senior
Registrado em: Jan 2008
Mensagens: 342
Reputação: 12
![]() ![]() ![]() |
É verdade eu esqueci de resetar a variavel "r" e com isso da esse problema, para corrigir é só colocar um r='\0'; antes do for:
Código:
|
|
|
|
|
|
#13 (permalink) |
|
Membro Senior
Registrado em: Nov 2008
Localização: RS-Brasil
Mensagens: 191
Reputação: 8
![]() |
bom, a solução que eu tinha proposto seria essa:
Código PHP:
vlw!
__________________
http://www.wfbombardellis.xpg.com.br/ Última edição por help_service : 14-04-2009 às 13:34. Motivo: concertar codigo |
|
|
|
|
|
#14 (permalink) |
|
Membro Senior
Registrado em: Jan 2008
Mensagens: 342
Reputação: 12
![]() ![]() ![]() |
Gostei dessa sua solução, ficou bem melhor para entender.
for(i=0;i<10;i++) { if(c[i]>='0' && c[i]<='9') r+=(c[i] & 0x0f); } |
|
|
|
|
|
#15 (permalink) | |
|
Tô em todas
Registrado em: Apr 2002
Localização: Paulista/PE
Mensagens: 1.642
Reputação: 525
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Com isso eu quero apenas dizer que se for usar uma constante em algum lugar do código, use #define para isso ou const. Não escreva números pelo seu código, isso o torna menos legível e mais difícil de manter, já que se esses números mudarem você tem que ir alterando todo lugar que contem esse cara. Para decidir se vai usar #define ou const, você deve pensar no seguinte, constantes criadas com o const serão guardadas na memória no modo "read-only", não podendo ser alteradas. Já as constantes criadas pelo #define serão substituídas no código "na hora da compilação", então depende da utilidade da coisa, por exemplo, você não vai poder passar um ponteiro para algo que está escrito no código, mas, pode apontar para algo que está na memória, entende?? depende do caso. abraço. |
|
|
|
|
![]() |
| Opções do Tópico | |
|
|