Imprimir total em float.

26/11/2019

0

C

Olá, estou com dificuldades para imprimir o total desta soma da maneira correta, já tentei mudar os tipos das var para float´mas o resultado sempre sai como um número inteiro, sei que deve ser algo besta que não estou percebendo, se alguém puder me ajudar!

Segue o código

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


void entrada (){
printf ("*************************************\n");
printf ("****          Bem Vindo          ****\n");
printf ("****              a              ****\n");
printf ("****          UNIPIZZA           ****\n");
printf ("*************************************\n");
}

 int menu (){
    int op;
    printf (" \nCardápio \n\n");
    printf ("1 - Pizzas. \n");
    printf ("2 - Bebidas. \n");
    printf ("3 - Finalizar o pedido.\n");
    printf ("Digite a opção desejada: \n");
    scanf("%d", &op);

    printf ("\n");
    ;
    return op;
}

int controladorapizza (int op) {
int oppizza;

    printf ("\n1 - Pizza Mussarela - 18,50 R$ \n");
    printf ("2 - Pizza Calabresa - 18,50 R$ \n");
    printf ("3 - Pizza Franco com Catupiry - 18,50 R$ \n");
    printf ("4 - Pizza Quatro Queijos - 22,50 R$ \n");
    printf ("5 - Pizza Portuguesa - 22,50 R$ \n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &oppizza);

    switch (oppizza){
      case 1:
          printf ("\nVocê adicionou pizza de Mussarela a sua bandeja!\n");
          break;
      case 2:
          printf ("\nVocê adicionou pizza de Calabresa a sua bandeja!\n");

          break;
      case 3:
          printf ("\nVocê adicionou pizza de Frango com Catupiry a sua bandeja!\n");

          break;
      case 4:
          printf ("\nVocê adicionou pizza de Quatro Queijos a sua bandeja!\n");

          break;

      case 5:
          printf ("\nVocê adicionou pizza de Portuguesa a sua bandeja!\n");

          break;

      default:
        printf ("\nValor incorreto, tente novamente\n");

    break;}
return oppizza;
}
int controladorabebida (int op) {
int opbebida;
char str [10];

    printf ("\n1 - Suco - 5,00 R$ \n");
    printf ("2 - Refrigerante Lata - 4,00 R$\n");
    printf ("3 - Refrigerante 2L - 13,00 R$\n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &opbebida);

    switch (opbebida){
    case 1:
    printf ("\nInforme o sabor do suco: \n");
    scanf ("%s", str);
    printf ("\nVocê adicionou suco de %s a sua bandeja!\n", str);


    break;

    case 2:
    printf ("\nInforme o refrigerante lata: ");
    scanf ("%s", str);
    printf ("\nVocê adicionou %s lata a sua bandeja!\n", str);

    break;

    case 3:
    printf ("\nInforme o refrigerante 2 Litros: ");
    scanf ("%s", str);
    printf ("\nVocê adicionou %s 2 Litros a sua bandeja!\n", str);

    break;

    default:
    printf ("\nComando incorreto, tente novamente\n");
    break;}

    return opbebida;

}

float somapizza (int oppizza){
float precopizza;

 switch (oppizza){
      case 1:
          precopizza = 18,50;
          break;
      case 2:
          precopizza = 18,50;

          break;
      case 3:
          precopizza = 18,50;

          break;
      case 4:
          precopizza = 22,50;

          break;

      case 5:
          precopizza = 22,50;

          break;}
          return precopizza;
          }


int somabebida (int opbebida){
int precobebida;

 switch (opbebida){
      case 1:
          precobebida = 5;
          break;
      case 2:
          precobebida = 4;

          break;
      case 3:
          precobebida = 13;

          break;
    }
          return precobebida;
          }

int main(){
    setlocale(LC_ALL,"");
    int op,oppizza,opbebida;
    float tpiz = 0;
    float tbeb = 0;
    float totalpedido;
    float precopizza,precobebida;
    entrada();
    do{
        op = menu(op);
        switch(op){
        case 1:
        oppizza =  controladorapizza(oppizza);
        precopizza = somapizza(oppizza);
        tpiz = precopizza + tpiz;
            break;
        case 2:
        opbebida = controladorabebida(opbebida);
        precobebida = somabebida(opbebida);
        tbeb = precobebida + tbeb;

            break;
        }

    }while(op != 3 );
    totalpedido = tpiz+tbeb;
    printf ("O valor total de seu pedido é: %.2f", totalpedido);
    printf("\n\n\n");
    return 0;
}


Obrigado!
Thiago Costa

Thiago Costa

Responder

Posts

02/12/2019

Lucas Conceição

Oi Thiago,

Então, para definir casa decimal, se usa o . (ponto final) e não , (virgula).

Toque isso:
    precopizza = 18,50;

Por isso:
    precopizza = 18.50;


e pronto, seu resultado vai sair com casal decimal.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar