Ir ao conteúdo
  • Cadastre-se
ALEX RIBEIRO DE MENEZES

Calcular valor do aumento sobre porcentagem

Recommended Posts

Senhores,

 

Estou com uma dificuldade para saber o valor do aumento ou seja a diferencia do aumento.

 

no primeiro ex. se lancar um valor de 1.600 o valor do aumento tem quer ser 192 conforme o o percentual do aumento e o valor total seria 1.792, mais o valor do aumento sempre vem errado.

#include <stdio.h>
int main (){
float Salario,NovoSalario,ValorAumento;

printf("\nEmpregado 1\n");
printf ("\nValor do Salario: \n");
scanf("%f",&Salario);
if ((Salario>=1.500)&&(Salario<1.750))
{
    ValorAumento= Salario*0.12; //VALOR DO AUMENTO
    NovoSalario= Salario*1.12;  //VALOR NOVO SALARIO
    printf("\nValor do Aumento em 12 Porcento: \n%f",ValorAumento);
    printf("\nValor do Novo Salario: \n%.3f",NovoSalario);
}
else if ((Salario>=1.750)&&(Salario<2.000))
{
    ValorAumento= Salario*0.10; //VALOR DO AUMENTO
    NovoSalario= Salario*1.10; //VALOR NOVO SALARIO
    printf("\nValor do Aumento em 10 Porcento: \n%f",ValorAumento);
    printf("\nValor do Novo Salario: \n%.3f",NovoSalario);
}
else if (Salario>=2.000)
{
    ValorAumento= Salario*0.05; //VALOR DO AUMENTO
    NovoSalario= Salario*5.5; //VALOR NOVO SALARIO
    printf("\nValor do Aumento em 5 Porcento: \n%f",ValorAumento);
    printf("\nValor do Novo Salario: \n%.3f",NovoSalario);
}
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu peguei seu código mexi um pouco nele, mas aqui funcionou depois que retirei os pontos dos valores das condições dos (if)s que você criou

  Por exemplo:

if ((Salario>=1500)&&(Salario<1750))
{
    ValorAumento= Salario*0.12; //VALOR DO AUMENTO
    NovoSalario= Salario*1.12;  //VALOR NOVO SALARIO
    printf("\nValor do Aumento em 12 Porcento: \n%f",ValorAumento);
    printf("\nValor do Novo Salario: \n%.3f",NovoSalario);

}

 testa ai e me fala se deu certo,

porque o ponto (.) é como se fosse ,

por exemplo em vez de 1500 você estava verificando se o valor seria 1,5 ate 1,75, por isso todos os valores estavam com 5 porcento de aumento, porque todos os valores digitados eram maior que 2.0.

 

é o que eu acho, lembrando que ainda estou aprendendo também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como falou @ViThor FM tratasse de reais(dinheiro). No primeiro caso trata-se de um valor(1600) entre 1500 e 1750 reais, por ponto é como se o valore fosse um valor entre um real e cinquenta centavos e um real e setenta e cinco centavos.
Eis aqui o exemplo:
 

    float Salario, NovoSalario, ValorAumento;
    Salario = 1600; //Entrada. Ao ler(com scanf) você deve por 1600, mesmo que se trate de um flotante, a menos que seja algo como mil e quinhentos reais e setenta e sete centavos(1500.77).
    
    if ( ( Salario >= 1500 ) && ( Salario < 1750 ) ) {
        ValorAumento = Salario * 0.12 ; 
        printf ( "\nValor do Aumento em 12 Porcento: \n%f", ValorAumento );
        
        
        NovoSalario = Salario + ValorAumento; // aqui você deve somar o salario ao valor de aumento para gerar NovoSalario
        printf ( "\nValor do Novo Salario: \n%.3f", NovoSalario );
    }

Ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você usou o operador ( . ) decimal de fração 1.600 < 2 dentro de um código C

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×