Jump to content

[C] Ajuda: Onde está o problema?


suzy

Recommended Posts

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();
}
Link to comment
Share on other 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. 😄

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

<3 life

Link to comment
Share on other 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').

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.