Picies Picies  • 12.10.17 16:32

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 16:32

Estou com um trabalho da faculdade pra sabado, está quase tudo pronto mas estou com um bug, ao digitar o valor da resposta em numero decimal ou caractere (sendo que a variavel só permite numeros inteiros como resposta) ocorre loop infinito.

Demonstraçao (fragmento do codigo, tirei só algumas variaveis que nao vem ao caso pra n ficar extenso)

int main(){
    int dia, mes, ano;
    float peso;
    setlocale(LC_ALL, "Portuguese");
    do{
    do{
            printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n");
            scanf("%i", &dia);
    }while(dia<1 || dia>31);

iJhefeX iJhefeX  • 12.10.17 16:37

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 16:37

Você ta lendo " i " onde seria " f (float) " não ?

Picies Picies  • 12.10.17 16:49

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 16:49

Picies escreveu:Estou com um trabalho da faculdade pra sabado, está quase tudo pronto mas estou com um bug, ao digitar o valor da resposta em numero decimal ou caractere (sendo que a variavel só permite numeros inteiros como resposta) ocorre loop infinito.

Demonstraçao (fragmento do codigo, tirei só algumas variaveis que nao vem ao caso pra n ficar extenso)

int main(){
    int dia, mes, ano;
    float peso;
    setlocale(LC_ALL, "Portuguese");
    do{
    do{
            printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n");
            scanf("%i", &dia);
    }while(dia<1 || dia>31);

acho que vc leu errado

iJhefeX iJhefeX  • 12.10.17 16:51

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 16:51

Código:
#include <stdio.h>


int main(int argc, char *argv[])
{
    int dia,mes,ano;
    do{
            printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n  \n");
            printf ("Digite o dia\n");
 scanf("%d", &dia);
 printf ("Digite o mes\n");
 scanf("%d", &mes);
 printf ("Digite o ano\n");
 scanf("%d", &ano);
    printf ("A crianca nasceu no dia %d/%d/%d \n",dia,mes,ano);
    }while(dia<1 || dia>31);

}
Aqui leu normal, quando pus decimal ele converteu para int


Última edição por iJhefeX em 12.10.17 16:56, editado 3 vez(es) (Motivo da edição : mudar código)

Picies Picies  • 12.10.17 16:53

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 16:53

iJhefeX escreveu:[code]    int dia;
   do{
           printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n");
           scanf("%d",

ja tentei usar %d, nao resolve

iJhefeX iJhefeX  • 12.10.17 16:55

Picies Picies  • 12.10.17 17:26

iJhefeX iJhefeX  • 12.10.17 17:27

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 17:27

Código:
#include <stdio.h>


int main(int argc, char *argv[])
{
    float dia,mes,ano;
   int diad;
    do{
            printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n\n");
            printf ("Digite o dia\n");
      scanf("%f", &dia);
      diad=dia;
 printf ("Digite o mes\n");
      scanf("%f", &mes);
 printf ("Digite o ano\n");
      scanf("%f", &ano);
       printf ("A crianca nasceu no dia %1.f/%1.f/%1.f \n",dia,mes,ano);

   }
   while(diad!=dia);
}
tente agora

Picies Picies  • 12.10.17 17:29

iJhefeX iJhefeX  • 12.10.17 17:36

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 12.10.17 17:36

tem certeza? Ele repete sim, complete as 3 perguntas.

b3ta b3ta  • 14.10.17 17:57

Ajuda em C - Loop infinito ao digitar número decimal em variável inteira Empty Re: Ajuda em C - Loop infinito ao digitar número decimal em variável inteira 14.10.17 17:57

[aviso=Moderação] O tópico foi fechado pelo seguinte motivo: Questão Resolvida (o autor informou no chatbox que era para fechar o tópico).[/aviso]
Permissões neste sub-fórum
Não podes responder a tópicos

BH Servers

Recomendamos a BH Servers com proteção DDOS gratuita em Cloud Server de alta performance. Entrega imediata.