Módulo 01 – M01A08 ( exercício 03)

Home Fóruns Linguagem C Módulo 01 – M01A08 ( exercício 03)

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #79047
      Vitória Nunes
      Participante

      Olá, esse é o exercício 03 do módulo 01(aula M01A08)
      Alguém sabe por que o meu float esta com um valor equivocado quando coloquei o valor do float no printf ? Irei colocar meu código:

      #include <stdio.h>
      #include <locale.h>

      void main() {
      setlocale(LC_ALL,”Portuguese”);
      printf(“<<<< EX003-Dados>>>>\n”);
      char nome[15];
      int idade;
      float peso;
      printf(“Qual seu nome?”);
      gets(nome);
      printf(“Quantos anos você tem?”);
      scanf(“%d”, &idade);
      printf(“Qual é o seu peso?”);
      scanf(“%0.f”, &peso);
      printf(“——–<<<<PROCESSANDO>>>>———— \n”);
      printf(“Muito prazer, %s . Você tem %d anos e pesa %fkg correto?\n “, nome, idade, peso);
      printf(“FIM.”);

      }

    • #79372
      Tutora Mayla
      Mestre

      Vitória, movi o seu tópico para o fórum referente a Linguagem C.
      Ao ler o peso está sendo feito scanf(“%0.f”, &peso);. Isto pode causar erros de execução, troque o %0.f por apenas %f e a leitura do valor será realizada corretamente. Para que o valor apareça formatado na tela, esta formatação deve ser realizada no printf.

      Espero ter ajudado, quaisquer dúvidas estamos à disposição.

    • #107561
      Filipe José Teixeira
      Participante

      Bom dia.
      O meu printf do float também dá problemas.

      scanf(“%f”, &peso);
      printf(“\n”);
      printf(“——-<<< PROCESSANDO >>>——-\n”);
      printf(“Muito prazer %s, você tem %d e %0.1f quilos. Correto?”, nome, ano, peso);

      Ao executar o código apesar da entrada ser 80.6 (p.e.) retorna sempre 80.0.

    • #107565
      Tutora Jessica
      Moderador

      Ola Filipe, bom dia .
      No seu scanf você passa o valor de %f e no printf você passa %0.1f , tente colocando somente o %f e veja se funciona .

    • #107579
      Filipe José Teixeira
      Participante

      Obrigado pela resposta.
      O problema era o uso do setlocale(LC_ALL, “Portuguese”), assim que mudei o separador para “,” passou a funcionar com a precisão que pretendia.

      Mais uma vez obrigado e votos de festas felizes para toda a equipa!
      Cumprimentos
      Filipe Teixeira

Visualizando 4 respostas da discussão
  • Você deve fazer login para responder a este tópico.