Ir ao conteúdo

Posts recomendados

Postado

Saudações a todos! Estou desenvolvendo esse código para uma atividade no meu curso, é um conceito bem simples, porém ainda estou me familiarizando aos poucos com a linguagem C e cheguei a um impasse que não sei como resolver.

 

Basicamente eu tenho que criar um programa que receba via teclado o nome do produto, a quantidade comprada, o tipo do produto (no caso eu coloquei como 1,2 e 3 sendo respectivos a Produtos Eletronicos, Games e Informática), e o valor unitário. Após isso o programa tem que calcular o valor total (quantidade de produtos que vai comprar * preço da unidade), e então aplicar os devidos descontos de acordo com o tipo de produto.

 

O código está engasgando na última parte, no cálculo envolvendo a multiplicação da quantidade de produtos * o preço, e depois ainda aplicar o desconto de acordo com o tipo do produto... No final sempre dá um número gigante aleatório, se alguém puder iluminar minha mente, será de grande ajuda.

 

Código:

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

int main(int ac, char *av[])
{
    float Quant, ValorProduto, Des, mult;
    char NomeProduto[50];
    int Desc;

    printf("Ola! Digite o nome do produto que deseja comprar: ");
    scanf("%s", NomeProduto);

    system("cls");

    printf("Qual o valor deste produto? ");
    scanf("%d", &ValorProduto);

    system("cls");

    printf("Quantas unidades desse produto deseja adquirir? ");
    scanf("%d", &Quant);

    system("cls");

    printf("Por favor, indique o numero correspondente ao tipo de produto que voce esta adquirindo.\n\n (1) Produtos Eletronicos \n (2) Games \n (3) Informatica \n\n ");
    scanf("%d", &Desc);

    system("cls");

    if(Desc == 1)
    {
            mult<- Quant*ValorProduto;
            Des=mult-(mult*0.1);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Des);
    }
    else
    {
    if(Desc == 2)
          {
            mult<- Quant*ValorProduto;
            Des=mult-(mult*0.08);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Des);
          }

    else
    {
        if(Desc == 3)
        {
              mult<- Quant*ValorProduto;
              Des=mult-(mult*0.05);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Des);
        }

    else
    {
        printf("Numero Invalido, tente novamente.\n");



               }
               }

               }


  system("PAUSE");
  return 0;
}

Agradeço de coração ❤️

Postado

Olá, fiz alguns ajustes e no meu caso está funcionando corretamente. Testa aí e vê se atende às suas necessidades.

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

int main() {
    float valor;
    float desconto;
    float total;
    int quantidade;
    int tipo;
    char nome[50];

    printf("Nome do produto: ");
    scanf("%s", nome);

    printf("Valor unitário: ");
    scanf("%f", &valor);

    printf("Quantidade: ");
    scanf("%i", &quantidade);

    printf("Tipo do produto: ");
    scanf("%i", &tipo);

    switch(tipo) {
        case 1:
            desconto = 0.1;
            break;
        case 2:
            desconto = 0.08;
            break;
        case 3:
            desconto = 0.05;
            break;
    }

    total = quantidade * valor;
    total = total - (total * desconto);

    printf("Valor total da compra: R$ %.2f \n\n", total);
    return 0;
}

 

adicionado 4 minutos depois

Obs.: A sua variável mult não está recebendo nenhum valor porque você usou (<-), deveria ter usado o sinal de igual (=).

  • Obrigado 1
Postado

@AdrianoSiqueira Nem acredito 😮 Finalmente deu certo!!! 

Seu exemplo ficou muito bom, percebi que eu estava usando alguns especificadores errados para ler o valor que eu colocava no teclado :)  Além disso troquei o sinal da variável mult como você me explicou que estava errado, foi o divisor de águas, deu super certo :D 

Muito obrigado por me ajudar irmão, o bom é que vou dar uma aprofundada nos estudos para não cometer esses errinhos.

 

PS: Achei muito massa o uso do switch, não tinha pensado nisso quando estava fazendo hahaha Acaba deixando o código bem mais limpo e economiza muitas linhas :)

 

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

int main(int ac, char *av[])
{
    float ValorProduto, Total, mult;
    char NomeProduto[50];
    int Desc, Quant;

    printf("Ola! Digite o nome do produto que deseja comprar: ");
    scanf("%s", NomeProduto);

    system("cls");

    printf("Qual o valor deste produto? ");
    scanf("%f", &ValorProduto);

    system("cls");

    printf("Quantas unidades desse produto deseja adquirir? ");
    scanf("%i", &Quant);

    system("cls");

    printf("Por favor, indique o numero correspondente ao tipo de produto que voce esta adquirindo.\n\n (1) Produtos Eletronicos \n (2) Games \n (3) Informatica \n\n ");
    scanf("%i", &Desc);

    system("cls");

    if(Desc == 1)
    {
            mult=Quant*ValorProduto;
            Total=mult-(mult*0.1);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Total);
    }
    else
    {
    if(Desc == 2)
          {
            mult=Quant*ValorProduto;
            Total=mult-(mult*0.08);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Total);
          }

    else
    {
        if(Desc == 3)
        {
              mult=Quant*ValorProduto;
              Total=mult-(mult*0.05);
    printf("O valor total do(s) produto(s) %s com o devido desconto e de: %.2f \n",NomeProduto, Total);
        }

    else
    {
        printf("Numero Invalido, tente novamente.\n");



               }
               }

               }


  system("PAUSE");
  return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...