Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Gesiel Souza

C Resultado saindo com um numero errado no final !

Recommended Posts

Postado (editado)

Boa Tarde pessoal,tenho o seguinte exercicio.

 

image.png.bfba952d45053a5fbbeb2f74f8f16e75.png

 

 

Fiz ele dessa forma :

#include <stdio.h>

int main()
{

    float salatual,porcentagem,salatualizado,gratificacao,temfirma;
    
    
    printf("Digite o salario atual:");
    scanf ("%f",&salatual);
    
    
     printf("Digite o tempo em que esta na empresa em meses:");
    scanf ("%f",&temfirma);
   
    if (salatual==2000.00 && temfirma==60){
        
    gratificacao = salatual*0.2;
    salatualizado = gratificacao+salatual;
    
    
    printf("seu salario é %.2f",salatualizado);
    }
    else {
         if (salatual==2000.00 && temfirma>60){
             gratificacao = salatual*0.25;
             salatualizado = gratificacao+salatual;
    
    printf("seu salario é %.2f",salatualizado);
             
}
else{
    if (salatual>2000.00 && temfirma==48){
     gratificacao = (salatual*10)/100;
    salatualizado = gratificacao+salatual;
    
    printf("seu salario atual é de : %.1f",salatualizado);
    
    
}
else{
    
    if (salatual>2000.00 && temfirma>48){
     gratificacao = salatual*15/100;
    salatualizado = gratificacao+salatual;
    
    printf("seu salario é %.1f",salatualizado);
    
}else{
 printf("voce não possui tempo suficiente ou o salário maior que 2000,00R$ para ter um bonus salarial");
         }

     }
     
     
 }
    return 0;
    }
}

 

------------------------------------------------------------------------------------------------------------------------------------------------

 

Só que as duas segundas opções do if---> gratificacao = (salatual*10)/100; e gratificacao = salatual*15/100; estão dando um número a mais no resultado final por exemplo,se o resultado for 215 ele da 315 e nao sei o que estou errando ,por favor help !!

Desde  já agradeço ,e nao liguem pra minha identação hha 

valeu !

 

 

 

 

 

 

image.png

Editado por Simon Viegas
Inserir tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não encontei nenhum erro não, tenta dar clean no projeto e compilar de novo para ver se continua dando erro.

 

Eu não sei se entendi direito, mas pelo que me parece se são até R$2000 e até 48/60 meses, então o correto seria colocar no if o comparador "<=" e não só o "==".

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, LucaRibeiro disse:

Não encontei nenhum erro não, tenta dar clean no projeto e compilar de novo para ver se continua dando erro.

 

Eu não sei se entendi direito, mas pelo que me parece se são até R$2000 e até 48/60 meses, então o correto seria colocar no if o comparador "<=" e não só o "==".

 @LucaRibeiro,se eu colocar o que você disse ,você esta repetindo a condiçao de cima ,nao entendi o que você quiser dizer ..

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gesiel Souza  Dá para passar um exemplo de um determinado salario e um determinado tempo e qual saída deva aparecer?

Por ex: salário = 2500 e tempo = 75. P esse caso qual deveria ser saída? 

adicionado 0 minutos depois

Ou melhor dizendo: o resultado?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Olá.

 

1#

É de suma importância que o código SEMPRE esteja indentado. Ex.:

#include <stdio.h>

int main() {
    float salatual,porcentagem,salatualizado,gratificacao,temfirma;
    
    printf("Digite o salario atual:");
    scanf ("%f",&salatual);    
    printf("Digite o tempo em que esta na empresa em meses:");
    scanf ("%f",&temfirma);
   
    if (salatual==2000.00 && temfirma==60) {
        gratificacao = salatual*0.2;
        salatualizado = gratificacao+salatual;    
        printf("seu salario é %.2f",salatualizado);
    } else {
        if (salatual==2000.00 && temfirma>60) {
            gratificacao = salatual*0.25;
            salatualizado = gratificacao+salatual;            
            printf("seu salario é %.2f",salatualizado);             
        } else {
            if (salatual>2000.00 && temfirma==48) {
                gratificacao = (salatual*10)/100;
                salatualizado = gratificacao+salatual;
                printf("seu salario atual é de : %.1f",salatualizado);
            } else {
                if (salatual>2000.00 && temfirma>48) {
                    gratificacao = salatual*15/100;
                    salatualizado = gratificacao+salatual;
                    printf("seu salario é %.1f",salatualizado);   
                } else {
                    printf("voce não possui tempo suficiente ou o salário maior que 2000,00R$ para ter um bonus salarial");
                }
            }     
        }
        return 0;
    }
}

Veja que só de visualizar o código, dá pra ver que o return está fora do lugar.

 

Teoricamente deveria ficar antes do último "}".

 

 

 

2#

Um do erros está nas condições dos if. Veja:

    if (salatual==2000.00 && temfirma==60) {

Tem 2 pontos:

- O enunciado se refere "até 2000", ou seja, o if deveria verificar se o salário é menor ou igual a 2000. Ai só seria verdadeiro se for igual! (quem ganha exatamente 2000)

- As sentenças precisam ser paradas por ().

RESUMINDO:

Poderia ficar assim:

    if ((salatual<=2000.00) && (temfirma<=60)) {

obs.:  não tenho certeza se é necessário no C, mas de qualquer forma fica mais organizado.

 

Para "superior a" utilize ">" mesmo.

 

 

***

 

No aguardo.

 

Editado por Simon Viegas

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, Simon Viegas disse:

- As sentenças precisam ser paradas por ().

RESUMINDO:

Poderia ficar assim:


    if (salatual<=2000.00) && (temfirma<=60) {

 

Para "superior a" utilize ">" mesmo.

 

 

***

 

No aguardo.

 

 

Não precisam não.

if (salatual<=2000.00 && temfirma<=60) {

Seria correto.

  • Curtir 1

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






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

×