Ir para conteúdo

Ola ainda preciso de ajuda pfv


Brenda Nunes

Posts Recomendados

olá eu tenho este código que é para um trabalho e minha professora disse para eu add uma

 

função

 

vetor ou matriz

 

sobre a matriz ou vetor eu tenho que fazer com que no final do código onde diz "o bolo pedido foi" apareça todos os nomes dos bolos pedidos 

 

 

 

 

 

#include <stdio.h>

#include <stdlib.h>

 

#define limparTela system("cls")  

 

void nomedubolo ();

 

typedef struct {

    int codigo;

    char nome [10];

    char ingrediente[10];

    double valor;

} Bolo_t;

 

typedef struct {

    int codigo;

    int codigoBolos[10];

    double valorTotal;

} Pedido_t;

 

int main() {

    const int quantidadeMaximaBolo = 10;  

    int posicaoBolo = 0;                   

    int posicaoBoloPedido = 0;             

    int codigoBolo = 0;  

    char nomedobolo [5] [100] ;                  

 

    Bolo_t bolos[quantidadeMaximaBolo];  

 

    Pedido_t pedido;                        

 

    char opcao = ' ';                       

 

    do {

        

        limparTela;

        printf("MENU \n");

        printf("[ 1 ] - Cadastrar Bolo \n");

        printf("[ 2 ] - Fazer pedido \n");

        printf("[ 0 ] - Sair \n");

        printf("> ");

        scanf(" %c", &opcao);

 

        switch (opcao) {

            case '1':   

            {

            

                limparTela;

                printf("NOVO BOLO \n");

                printf("Nome do bolo: ");

                scanf(" %[^\n]s",nomedobolo);

                printf("digite o codigo do bolo: ");

                scanf(" %[^\n]s", bolos[posicaoBolo].nome);

                printf("Valor: R$ ");

                scanf(" %lf", &bolos[posicaoBolo].valor);

                

 

                bolos[posicaoBolo].codigo = posicaoBolo + 1;     

                posicaoBolo += 1;

                break;

            }

 

 

            case '2':   

                limparTela;

                if (posicaoBolo == 0) {

                    printf("Nao tem bolo cadastrado \n");

 

                    if (getchar() == '\n') {

                        getchar();

                    }

 

                    break;

                }

 

                

                do {

                    printf("Digite o codigo do bolo e caso nao queira mais bolos digite 0:", nomedobolo, bolos[posicaoBolo].nome );

                    scanf(" %i", &codigoBolo);

 

                    if (codigoBolo > 0 && codigoBolo <= posicaoBolo) {

                        

                        pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;

                        

                        pedido.valorTotal += bolos[codigoBolo - 1].valor;

                        

                        posicaoBoloPedido += 1;    

                    

                    }

                } while (codigoBolo != 0 && posicaoBoloPedido < 10);

                

                pedido.codigo = 1;

                break;

        }

    } while (opcao != '0');

 

    limparTela;

    printf("--------------------------------------------- \n");

    printf(" PEDIDO \n");

    printf(" Codigo: %i \n", pedido.codigo);

    printf(" Valor: R$ %.2f \n", pedido.valorTotal);

    printf(" o bolo pedido foi: %s \n ", nomedobolo);

    printf("--------------------------------------------- \n");

 

    return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Brenda, antes de mais nada, você está em um fórum de ajuda para estudantes de C e C++. Então, criar um descrição com o título "preciso de ajuda" é bastante inútil, possivelmente completamente inútil. Se é um fórum pra pedir ajudar, é claro que todas, ou quase todas, as discussões abertas nele serão de pessoas pedindo ajuda pra alguma coisa. Então, sugiro que você edite a sua primeira mensagem, e mude o título da discussão para algo informativo. Algo que resuma a sua dúvida, a sua necessidade, o seu problema. Algo que atraia leitoras e leitores entendidos sobre o assunto que você precisa de ajuda.

Pelo que você escreveu, se eu entendi certo, te foi pedido uma função e também um "vetor ou matriz". Isto significa que você pode usar um vetor OU uma matriz no seu programa. Não precisa usar os dois. Mas qual você vai usar? Bem, isto depende de como você planejar o funcionamento do seu programa. Ou, falando de uma forma mais normal pra área de programação, depende do algorítmo que você criar para o programa.

Agora, o código que você enviou aqui tem vários problemas básicos. Primeiro, ele não está formatado, dentro do fórum, como código. Isto deixa ele visualmente ruim de ser lido por quem for te ajudar. Uma coisa que eu não sei se foi escolha sua ou não, mas ele tem linhas vazias separando todas as linhas de código. Isto é incomum. Deixa o seu código longo demais, verticalmente, e fica difícil até pra você ir lendo pequenos trechos de cada coisa. O seu código também não tem nenhum comentário! Isto é péssimo. Vai te ajudar muito, ao escrever os programas, se antes de evoluir o código você comentar o que ele significa. Comentar o uso de variáveis, de estruturas e vetores, e talvez como usará cada uma. Comentar as funções. E você também pode fazer comentários separados apenas falando o algoritmo de uma vez. E depois, no código do algoritmo sendo feito, você vai precisar de pouco comentário, apenas para lembrar, de forma resumida, qual passo do algoritmo um trecho é. Você também declarou uma função  chamada nomedubolo, mas não escreveu ela, nem a chamou no código dentro da função main. Ainda, eu tentei compilar o seu código com o compilador gcc, e ele deu erros que são fáceis de corrigir. Se você quer pedir ajuda com seu exercício, você deve ao menos tentar resolver estes erros. Se você não conseguir, mostre o que você fez, diga se tentou outras coisas, e aí alguém te ajuda muito mais facilmente. Então, seu programa está precisando melhorar em tudo isto.

Mas além de escrever muito, eu comecei fazendo uma reformatação do seu código. Tirei a maior parte das linhas vazias que existem na sua mensagem 1, e movi as chaves para que o símbolo "{" fique sempre verticalmente visível e alinhado com o "}" correspondente. Eu acho que assim fica muito mais fácil de ver o início e fim de cada bloco ou estrutura. "Ah, mas é uma linha a mais!" Sim, é uma linha a mais que melhora e facilita muito a legibilidade do código na minha opinião. Tem programadoras de nível avançado que ainda preferem o "{" no final da linha. É questão de preferência. Você escolhe seu estilo. Eu já te disse os meus argumentos para preferir os "{" sozinhos numa linha e alinhados aos seus respectivos "}".

Aqui vai o seu código que reformatei, mas não corrigi nem mudei nada. Você pode compilar ele, compilar e tentar corrigir os erros que existem nele. Feito isto, posso continuar te ajudando com a tarefa, se você precisar.

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

#define limparTela system("cls")  

void nomedubolo ();

typedef struct
{
    int codigo;
    char nome [10];
    char ingrediente[10];
    double valor;
} Bolo_t;

typedef struct
{
    int codigo;
    int codigoBolos[10];
    double valorTotal;
} Pedido_t;

 

int main()
{
    const int quantidadeMaximaBolo = 10;  
    int posicaoBolo = 0;                   
    int posicaoBoloPedido = 0;             
    int codigoBolo = 0;  
    char nomedobolo [5] [100] ;                  

    Bolo_t bolos[quantidadeMaximaBolo];  

    Pedido_t pedido;                        

    char opcao = ' ';                       

    do
    {
        limparTela;
        printf("MENU \n");
        printf("[ 1 ] - Cadastrar Bolo \n");
        printf("[ 2 ] - Fazer pedido \n");
        printf("[ 0 ] - Sair \n");
        printf("> ");
        scanf(" %c", &opcao);
        switch (opcao)
	{
            case '1':   
            {
                limparTela;
                printf("NOVO BOLO \n");
                printf("Nome do bolo: ");
                scanf(" %[^\n]s",nomedobolo);
                printf("digite o codigo do bolo: ");
                scanf(" %[^\n]s", bolos[posicaoBolo].nome);
                printf("Valor: R$ ");
                scanf(" %lf", &bolos[posicaoBolo].valor);

                bolos[posicaoBolo].codigo = posicaoBolo + 1;     
                posicaoBolo += 1;
                break;
            }
            case '2':   
                limparTela;
                if (posicaoBolo == 0)
		{
                    printf("Nao tem bolo cadastrado \n");
                    if (getchar() == '\n')
		    {
                        getchar();
                    }
                    break;
                }
                do
		{
                    printf("Digite o codigo do bolo e caso nao queira mais bolos digite 0:", nomedobolo, bolos[posicaoBolo].nome );
                    scanf(" %i", &codigoBolo);
                    if (codigoBolo > 0 && codigoBolo <= posicaoBolo)
		    {
                        pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;
                        pedido.valorTotal += bolos[codigoBolo - 1].valor;
                        posicaoBoloPedido += 1;    
                    }
                } while (codigoBolo != 0 && posicaoBoloPedido < 10);
                pedido.codigo = 1;
                break;
        }

    } while (opcao != '0');

    limparTela;
    printf("--------------------------------------------- \n");
    printf(" PEDIDO \n");
    printf(" Codigo: %i \n", pedido.codigo);
    printf(" Valor: R$ %.2f \n", pedido.valorTotal);
    printf(" o bolo pedido foi: %s \n ", nomedobolo);
    printf("--------------------------------------------- \n");

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...