Ir ao conteúdo
  • Cadastre-se
jordan de arruda

C Não consigo entender função em C

Recommended Posts

Preciso de ajuda em três pontos. Não consegui compreender funções e seu parametros e estou com dificuldade em concluir o meu codigo. 

O exercício é um menu de restaurante que resumidamente, repete um menu quando uma opção errada é digita, da um desconto em pagamento a vista, e uma taxa em pagamento com cartão de credito, conclui perguntando se quer fazer um novo pedido e se a resposta for sim, repete tudo de novo.

 

fiz o seguinte codigo:

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

int main ()
{
    printf("Bem vindo(s) ao restautante Gourmet Nutella\n\nQual o seu pedido?\n\n");
    return prato();
}
int prato()
{
    int a;
    float veta[2];
    printf("Escolha um prato:\n 1 - Salada Caesar - 44 cal - R$ 15.50 \n 2 - Camarao internacional - 230 cal - R$ 23.60 \n 3 - Filet de Frango Grelha - 180 cal - R$ 17.00 \n 4 - Carne de Sol Completa - 350 cal - R$ 21.10 \n"  );
    scanf("%d", &a);
    {
        if (a==1)
        {
            veta[0]= 15.50;
            veta[1]= 44;
        }
        if (a==2)
        {
            veta[0]= 23.60;
            veta[1]= 230;
        }
        if (a==3)
        {
            veta[0]= 17.00;
            veta[1]= 180;
        }
        if (a==4)
        {
            veta[0]= 21.10;
            veta[1]= 350;
        }
        while(a!=1 && a!=2 && a!=3 && a!=4)
        {
            return prato();
        }
    }
    system ("cls");
    printf("R$ %.2f\n", veta[0]);
    printf("%.2f cal\n\n", veta[1]);
    return bebida();
}
int bebida()
{
    int b;
    float vetb[2];
    printf("Escolha uma bebida:\n 1 - Cha Gelado - 20 cal - R$ 3.0 \n 2 - Suco de Laranja - 70 cal - R$ 4.0 \n 3 - Guarana Antartica - 100 cal - R$ 4.5 \n 4 - Coca-cola - 150 cal - R$ 5.0 \n 5 - NADA \n ");
    scanf("%d", &b);
    {
        if (b==1)
        {
            vetb[0]= 3.00;
            vetb[1]= 20;
        }
        if (b==2)
        {
            vetb[0]= 4.00;
            vetb[1]= 70;
        }
        if (b==3)
        {
            vetb[0]= 4.5;
            vetb[1]= 100;
        }
        if (b==4)
        {
            vetb[0]= 5.00;
            vetb[1]= 150;
        }
        if (b==5)
        {
            vetb[0]= 0;
            vetb[1]= 0;

        }
        while (b!=5 && b!=4 && b!=3 && b!=2 && b!=1)
        {
            return bebida();
        }

    }
    system ("cls");
    printf("R$ %.2f\n", vetb[0]);
    printf("%.2f cal\n\n", vetb[1]);
    return sobremesa();
}
int sobremesa(){
    int c;
    float vetc[2];
    printf("Escolha uma sobremesa:\n 1 - Brigadeiro de colher - 200 cal - R$ 15.50 \n 2 - Cheesecake de Morango - 310 cal - R$ 20.50 \n 3 - Sorvete Light - 70 cal - R$ 10.00 \n 4 - Mousse de Chocolate - 250 cal - R$ 16.50 \n 5 - NADA \n ");
    scanf("%d", &c);
    {
        if (c==1)
        {
            vetc[0]= 15.50;
            vetc[1]= 200;
        }
        if (c==2)
        {
            vetc[0]= 20.50;
            vetc[1]= 310;
        }
        if (c==3)
        {
            vetc[0]= 10.00;
            vetc[1]= 70;
        }
        if (c==4)
        {
            vetc[0]= 16.50;
            vetc[1]= 250;
        }
        if (c==5)
        {
            vetc[0]= 0;
            vetc[1]= 0;
        }
        while(c!=1 && c!=2 && c!=3 && c!=4 && c!=5)
        {
            return sobremesa();
        }
    }
    system ("cls");
    printf("R$ %.2f\n", vetc[0]);
    printf("%.2f cal\n\n", vetc[1]);

}

 

Duvidas?

 

Usar return para entrar em uma função está certo? Por que  quando tiro os return "função"; o codigo não roda.

Vou criar uma quarta função pra somar os valores de cada vetor, como puxo na memoria esses valores armazenados?

  • Curtir 1
  • Triste 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve de ter um acerto neste erro!

adicionado 6 minutos depois

Faça de novo e dessa vez lei as apostilas com mais paciência, minha humilde recomendação 

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

×