• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

[C] Ajuda: Onde está o problema?

3 mensagens neste tópico

Faça o algoritmo de um programa que calcule o valor total a pagar por determinado

artigo, sabendo o tipo de artigo e o seu preço sem IVA . Suponha que a taxa de IVA é de

5 % para os bens essenciais, 30% para os produtos de luxo e 19 % para os restantes.

#include<stdio.h>
# define B 0.5
# define L 0.30
# define R 0.19

  main()
  {
  int precosiva,ival,ivab,ivar,precop;
  char tipo;
  printf(" introduza o tipo de produto\n"),
  printf(" BENS ESSENCIAIS -> b\n");
  printf("  LUXO - > l \n");
  printf(" RESTANTES -> r \n");
  scanf("%c",&tipo);
  printf(" introduza o preco do produto\n");
  scanf("%d",&precosiva);
  
        if(tipo=='b')
            {
             ivab=precosiva*B;
             precop=precosiva+ivab;
             printf(" o preco do produto e %5d\n",precop);
            }
        else
              if(tipo=='l')
                 {
                  ival=precosiva*L;
                  precop=precosiva+ival;
                  printf(" o preco do produto e %d\n",precop);
                 }
                 
              else
                  {
                  ivar=precosiva*R;
                  precop=precosiva+ivar;
                  printf(" o preco do produto e %d\n",precop);
                  }
fflush(stdin);
getchar();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include<stdio.h>

# define B [b]0.05[/b]
# define L 0.30
# define R 0.19

int main()
{
    int precosiva, ival, ivab, ivar, precop;
    char tipo;


    printf("BENS ESSENCIAIS -> b\n");
    printf("LUXO - > l \n");
    printf("RESTANTES -> r \n");
    printf("Introduza o tipo de produto: ");    
    scanf("%c", &tipo);
    printf("Introduza o preco do produto: ");
    scanf("%d", &precosiva);

    if(tipo=='b')
    {
        ivab=precosiva*B;
        precop=precosiva+ivab;
        printf(" o preco do produto e %d\n", precop);
    }
    else if(tipo=='l')
    {
        ival=precosiva*L;
        precop=precosiva+ival;
        printf(" o preco do produto e %d\n", precop);
    }
    else
    {
        ivar=precosiva*R;
        precop=precosiva+ivar;
        printf(" o preco do produto e %d\n", precop);
    }
    
    fflush(stdin);
    getchar();
    
    return 0;
}

Não testei, se ainda não funcionar apresenta aqui a mensagem de erro. :D

PS: Aprende a indentar o código correctamente, torna a detecção de erros muito mais fácil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no segundo 'scanf', um espaço antes do '%d' é capaz de ser útil...

se calhar era boa ideia usar floats em vez de ints.

no último 'else' devia ter um 'if(tipo=='r')' e depois outro 'else' a dar uma mensagem de erro.

também não está a verificar se o utilizador está a introduzir um valor inteiro para o preço do produto (isso pode ser feito analizando o resultado do 'scanf').

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora