Imprimir total em float.

C

26/11/2019

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

Curtidas 0

Respostas

Lucas Conceição

Lucas Conceição

26/11/2019

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.
GOSTEI 0
POSTAR