Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema com double

Eu estava testando meus conhecimentos e me deparei com uma situação que não estou encontrando solução, quando eu peço o programa para lê e guardar o numero do usuário dentro da variável "dolar" ou "real" ele não faz, e me devolve a resposta "Com U$1.00 dolares voce tera R$3.11 reais" ou "Com R$1.00 reais voce tera U$0.32 dolares" sempre que executo, independente do valor que eu dou no scanf

do {
        printf ("Escolha qual tipo de conversao voce qur fazer: \n");
        printf (" [1] Converter de dola para real\n");
        printf (" [2] Conversor de real para dola\n");
        printf (" [3] Sair do programa\n");
        printf (" Sua escolha eh: ");
        scanf ("%d", &escolha);

        double dola = 1;
        double real = 1;

        if (escolha == 1){
            printf ("++++++++++++++++++++++++++++++++++\n");
            printf ("Convertendo de dola para real\n");
            printf ("Quantos dolares vc tem? ");
            scanf ("%f", &dola);
            real = (dola * 3.11);
            printf ("Com U$%.2f dolares voce tera R$%.2f reais\n\n", dola, real);
        }
        if (escolha == 2){
            printf ("++++++++++++++++++++++++++++++++++\n");
            printf ("Convertendo de dola para real\n");
            printf ("Quantos reais vc tem? ");
            scanf ("%f", &real);
            dola = (real / 3.11);
            printf ("Com R$%.2f reais voce tera U$%.2f dolares", real, dola);
        }
    } while (!escolha == 3);
3 respostas

Coloque uma nova linha no final das perguntas:

printf ("Quantos dolares vc tem?\n");
//...
printf ("Quantos reais vc tem?\n");

se isso não der certo, tente colocar um espaço em branco na string de formato do scanf:

scanf (" %f", &dola);
//...
scanf (" %f", &real);
solução!

Bom Carlos! para ler um double devemos usar %lf; tente isso.

Deu certo Ramires, Muito obrigado.