Skater 0 Denunciar post Postado Março 22, 2011 Boa tarde... Pessoal eu usei a busca e andei pesquisando achei muita coisa e obtive muita informação. Minha dúvida é a seguinte, eu preciso ler uma série de 4 algarismos um de cada vez. Eu pensei uma série deve ser uma string então faço um laco for ou while para ler os valores um de cada vez até ai tudo bem só que na hora de imprimir ele imprimi somente o ultimo numero digitado! O primeiro codigo que fiz é esse #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char s[5]; int i; printf("digite uma serie de valores com 4 algarismos\n"); for(i=1;i<=4;i++) gets(s); printf ("\n\nVoce digitou %c\n", s); system("PAUSE"); return 0; } Tentei fazer dessa maneira ele compila tudo certo mas na hora de executar da erro(o motivo dessa tentativa foi para que cad arepetição do laço ele armazenasse em uma alocação da string) #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char s[5]; int i,x=0; printf("digite uma serie de valores com 4 algarismos\n"); for(i=1;i<=4;i++) gets(s[i]); printf ("\n\nVoce digitou %c\n", s[i]); system("PAUSE"); return 0; } Obs. Essa é so uma parte do programinha que tenho que fazer não sei se a minha logica está errada ou a sintaxe que estou usando, usei a IDE Dev-C++ para compilar. Espero que possam me ajudar se precisar de mais informações ow se nao fui claro é so dar um toque, é a primeira vez que posto me desculpe se furei alguma regra.. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 22, 2011 Uma série não quer dizer necessariamente uma string. Pode ser uma sequência de inteiros, sendo que cada um deles pode ser armazenado temporariamente em uma única variável. Nunca use gets. Tem um tópico sobre isso no fórum. Tente algo assim: #include <stdio.h> int main(void) { int numeros[4]; for(int i = 0; i<4; i++) scanf("%d", &numeros[i]); for (int i = 0; i<4; i++) printf("%d\n", numeros[i]); return 0; } O que você está fazendo no primeiro código é ler uma string inteira (a mesma string) 4 vezes e está usando impressão de apenas um caractere nessa string inteira (o correto seria usar %s). No segundo código você está tentando imprimir o que tem na posição 5 da string. Compartilhar este post Link para o post Compartilhar em outros sites
Skater 0 Denunciar post Postado Março 23, 2011 Isis, Valeu mesmo ler com a sua ajuda consegui, como eu tinha dito é so uma parte do problema que nao conseguia resolver... A outra parte eu teria que ter esses 4 numeros em uma variavel só. Exemplo numeros = [1][7][5][0] atribir pra uma variavel para ficar um numero inteiro numeros = 1750 não sei se entendeu mas seria isso passar os 4 numeros digitados separadamente pra uma variavel para manipular(dividir, somar, multiplicar) a possibilidade de usar string apareceu quando vi que os 4 numeros digitados tem que ser um só numero em interio, ia ler em string depois convertelo, pensando assim vai dar mais trabalho.. mas com o codigo que voce passou deve dar certo tambem. obrigadoo viu vou dar uma lida agora no tópico sobre gets. Compartilhar este post Link para o post Compartilhar em outros sites
Skater 0 Denunciar post Postado Março 26, 2011 Consegui Resolver o codigo do jeito que eu queria !! Pra quem precisar vou postar o codigo aqui. #include <stdio.h> #include <stdlib.h> int main() { char s[4]; int i,x; printf("digite os 4 numeros"); for(i=0;i<=3;i++) scanf("%s",&s[i]); x = atoi(s); printf("string %d\n",x); system("PAUSE"); return 0; } Era só a linha do atoi valeu !! (Noob é assim mesmo tem que pesquizar pra aprender) Compartilhar este post Link para o post Compartilhar em outros sites