Ir para conteúdo
Fórum Script Brasil
  • 0

ajuda com c (trabalho para faculdade)


Uedney Morais

Pergunta

Bom dia pessoal, estou tendo um problema para carregar o valor em uma variável, bom tenho uma variável do tipo float que precisa ser populada com o valor dependendo da escolha do utilizador, o problema é que tenho 2 do while e um switch case, ao escolher a opção a variável não está recebendo o valor e nem somando caso a pessoa escolha mais de uma opção. segue o codigo. Por favor alguém me ajude!!!

void alugar_veiculo(){
        int cod_alugar[10];
        char cliente [10];
        //char veiculo[10];
        float valor;
        int op;
        int adc;
        int cat;
        do{
        printf("Digite o codigo: ");
        scanf("%d",&cod_alugar);
        fflush(stdin);

        printf("Cliente: ");
        scanf("%c",&cliente);
        fflush(stdin);
        do{
        printf(" escolha o tipo de veiculo: \n1 - passeio \n2 - microonibus \n3 - caminhao\n");
        scanf("%c",&cat);
        fflush(stdin);
        switch(cat){
            case 1: valor = 80.00;
            break;
            case 2: valor = 150.00;
            break;
            case 3: valor = 300.00;
            break;
        }
        printf("Deseja alugar mais algum veiculo?\n1-Sim \n0-não\n\n");
        scanf("%d",&adc);
        fflush(stdin);

        }while(adc!=0);
        printf("Valor total: %f\n",&valor);
        printf("\n1 Continuar \n0 Sair");
        scanf("%d",&op);
        }while(op!=0);
  }

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite. Seu código só precisa de alguns pequenos ajustes para funcionar:

1 - Ao receber o valor da variável "cat", você usou o código de formatação %c e a variável é do tipo inteira:

do{
        printf(" escolha o tipo de veiculo: \n1 - passeio \n2 - microonibus \n3 - caminhao\n");
        scanf("%c",&cat);

2 - Ao imprimir o valor total, a variável está acompanhada o "&", o que acaba imprimindo valores estranhos:

printf("Valor total: %f\n",&valor);

3 - Para fazer a soma é necessário algo no programa que capture o valor do veículo e faça uma soma caso o usuário queira alugar mais algum alugue. Nesse caso un IF simples + uma variável para a soma posicionados corretamente já te resolvem:

if(adc != 0)
            soma = soma + valor;

***No final das contas ficaria assim:

void alugar_veiculo(){
        int cod_alugar[10];
        char cliente [10];
        //char veiculo[10];
        float valor,soma = 0;
        int op;
        int adc;
        int cat;
        do{
        printf("Digite o codigo: ");
        scanf("%d",&cod_alugar);
        fflush(stdin);

        printf("Cliente: ");
        scanf("%c",&cliente);
        fflush(stdin);
        do{
        printf(" escolha o tipo de veiculo: \n1 - passeio \n2 - microonibus \n3 - caminhao\n");
        scanf("%d",&cat);
        fflush(stdin);
        switch(cat){
            case 1: valor = 80.00;
            break;
            case 2: valor = 150.00;
            break;
            case 3: valor = 300.00;
            break;
        }
        if(adc != 0)
            soma = soma + valor;
        printf("Deseja alugar mais algum veiculo?\n1-Sim \n0-não\n\n");
        scanf("%d",&adc);
        }while(adc!=0);
        printf("Valor total: %f\n",soma);
        printf("\n1 Continuar \n0 Sair");
        scanf("%d",&op);
        }while(op!=0);
  }

Espero ter ajudado ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...