Ir ao conteúdo
  • Cadastre-se
Alan Neves

C Erro linguagem C, o programa não deixa eu digitar no segundo scanf

Recommended Posts

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

int main(void)
{
    double valora;
    double valorb;
    double valorc;
    double soma;
    printf("Digite o primeiro valor (A)\n");
    scanf("lf",&valora);

    printf("Digite o segundo valor (B)\n");
    scanf("lf",&valorb);

     printf("Digite o segundo valor (C)\n");
     scanf("lf",&valorc);

    soma = valora+valorb;

    if (soma<valorc){
        printf("A soma de A e B é menor que o valor C");
    }else if (soma>valorc){
        printf("A soma de A e B é maior que C");
    } else
        printf("A soma de A e B é igual C");

        return 0;

}

2018-03-29 (1).png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou colocar o % antes de lf:

scanf("%lf",&valora);

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Olá. Seu problema está em sujeira no buffer de entrada. Dá uma olhada na maneira como costumo fazer para resolver esse problema:

 

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

int main(void)
{
	setlocale(LC_ALL, "Portuguese");
	
    double valora;
    double valorb;
    double valorc;
    double soma;
    char *c;
    
	printf("Digite o primeiro valor (A)\n");
    scanf("%lf",&valora);
    scanf("%c", &c); // Essa linha é ignorada pelo compitador. Aqui é para limpar o buffer de entrada. 

    printf("Digite o segundo valor (B)\n");
    scanf("%lf",&valorb);
    scanf("%c", &c);

    printf("Digite o segundo valor (C)\n");
    scanf("%lf",&valorc);
    scanf("%c", &c);

    soma = valora + valorb;

    if (soma < valorc)
	{
        printf("A soma de A e B é menor que o valor C");
    }
	else if (soma>valorc)
	{
        printf("A soma de A e B é maior que C");
    } 
	else
        printf("A soma de A e B é igual C");

    return 0;

}

Se é isso q precisava avisa, ok?

adicionado 3 minutos depois

Apenas uma observação sobre o código q postei. 

Se quiser usar acentuação adicione o arquivo de cabeçalho locale.h e na função setlocale() defina para o português.

Nesse caso é bom lembrar que daí, para entrar com um valor do tipo double ou float, use a vírgula e não o ponto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou depois de cada scanf, coloca fflush(stdin), se for Windows.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×