Ir ao conteúdo

Posts recomendados

Postado

Pensei que tinha terminado o código, quando botei pra rodar não estava funcionando, me ajudem a enxergar onde eu errei. Devo estar errando alguma coisa besta.

________________________________________________________________________________________________________________________________________________

Crie a função ReajSalNovo que receba da função main o valor do salário e efetue o cálculo do reajuste de salário cada funcionário. Considere que o funcionário deve receber um reajuste de 15% caso seu salário seja menor que 800 reais. Se o salário for maior ou igual a 800 e menor ou igual a 1000, seu reajuste será de 10 %; caso seja maior que 1000, o reajuste deve ser de 5%. Exiba na função main o salário antigo e novo salário obtido na função de K números definido pelo usuário. Essa quantidade K deverá ser maior que zero e menor ou igual a 10.

//Protótipo da funcção ReajSalNovo
float ReajSalNovo(float sal_antigo, float sal_novo);

main()
{
    int k,i;
    float SalAntigo, SalNovo;
    do{
        printf("Digite um numero maior que 0 e menor que 11: ");
        scanf("%d",&k);
    }while(k<=0 || k>=10);

    for(i=0;i<k;i++)
        {
        printf("Digite o valor do salario: ");
        scanf("%d", &SalAntigo);
        ReajSalNovo(SalAntigo, SalNovo);
        printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,SalNovo);
        }
}
float ReajSalNovo(float sal_antigo, float sal_novo)
{
    //Condicionais que calculam o salário antigo com o reajuste para o sal_novo.
    if(sal_antigo<800)
    {
        sal_novo=sal_antigo+sal_antigo*0.15 ;
    }else if(sal_antigo>=800 && sal_antigo<=1000)
    {
        sal_novo=sal_antigo+sal_antigo*0.10;
    }else{
        sal_novo=sal_antigo+sal_antigo*0.05;
    }
    return (sal_antigo,sal_novo);
}

 

Postado
5 minutos atrás, Malcolm X disse:

Só um parâmetro? 

Sim ...

 

Observe:

23 minutos atrás, Malcolm X disse:

Crie a função ReajSalNovo que receba da função main o valor do salário ...

É somente o valor do salario ou comumente salario do funcionário.

Caso contrário fica em desacordo com solicitado. 

  • Obrigado 2
Postado

cara, mesmo com apenas um parâmetro continuo com o mesmo problema.

//Protótipo da funcção ReajSalNovo
float ReajSalNovo(float sal_novo);

main()
{
    int k,i;
    float SalAntigo, SalNovo=0;
    do{
        printf("Digite um numero maior que 0 e menor que 11: ");
        scanf("%d",&k);
    }while(k<=0 || k>=10);

    for(i=0;i<k;i++)
        {
        printf("Digite o valor do salario: ");
        scanf("%d", &SalAntigo);
        SalNovo=SalAntigo;
        ReajSalNovo(SalNovo);
        printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,SalNovo);
        }
}
float ReajSalNovo(float sal_novo)
{
    //Condicionais que calculam o salário antigo com o reajuste para o sal_novo.
    if(sal_novo<800)
    {
        sal_novo=sal_novo+sal_novo*0.15;
    }else if(sal_novo>=800 && sal_novo<=1000)
    {
        sal_novo=sal_novo+sal_novo*0.10;
    }else{
        sal_novo=sal_novo+sal_novo*0.05;
    }
    return (sal_novo);
}

 

  • Curtir 1
  • Obrigado 1
  • Solução
Postado

Precisou também de mudanças interna da função.

#include <stdio.h>
//Protótipo da funcção ReajSalNovo
float ReajSalNovo(float salario);

int main (void)
{
    int k, i;
    float SalAntigo, SalNovo = 0;
    do{
        printf("Digite um numero maior que 0 e menor que 11: ");
        scanf("%d", &k);
    } while ((k < 0) || (11 < k));

    for(i=0; i < k; i++){
        printf("Digite o valor do salario: ");
        scanf("%f", &SalAntigo);

        
        SalNovo = ReajSalNovo(SalAntigo);
        printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo, SalNovo);
        }
}
float ReajSalNovo(float salario)
{
    float sal_novo;
    //Condicionais que calculam o salário antigo com o reajuste para o sal_novo.

    if(salario < 800)
    {
        sal_novo = salario + salario * 0.15;
    }else if((salario >= 800) && (salario <= 1000))
    {
	sal_novo = salario + salario * 0.10;
    }else
    {
        sal_novo = salario + salario * 0.05;
    }
    return (sal_novo);
}

Então funcionou ?

  • Curtir 1
  • Obrigado 2
Postado

@Malcolm X

27 minutos atrás, Malcolm X disse:

ReajSalNovo(SalNovo);         
printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,SalNovo);

Você apenas está dando a variável SalNovo para a função, mas a mesma não é modificada.

Você poderia atribuir o valor de retorno dessa função à essa variável, como @Mauro Britivaldo fez, ou imprimi-lo:

printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,ReajSalNovo(SalNovo));

Também tem um errinho por desatenção, você usou %d no scanf() ao invés de %f:

27 minutos atrás, Malcolm X disse:

scanf("%d", &SalAntigo);

SalAntigo é do tipo float.

  • Obrigado 2
Postado

@Lucca Rodrigues Errinho bobo, sabia que era alguma coisa besta.

1 hora atrás, Lucca Rodrigues disse:

SalAntigo é do tipo float.

 

@Lucca Rodrigues @Mauro Britivaldo Entendi. Enfim, dessa vez consegui resolver o exercício. Agradeço pela ajuda e atenção.

1 hora atrás, Lucca Rodrigues disse:

printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,ReajSalNovo(SalNovo));

 

O código: 

//Protótipo da funcção ReajSalNovo
float ReajSalNovo(float sal_novo);

main()
{
    int k,i;
    float SalAntigo, SalNovo=0;
    do{
        printf("Digite um numero maior que 0 e menor que 11: ");
        scanf("%d",&k);
    }while(k<=0 || k>=10);

    for(i=0;i<k;i++)
        {
        printf("Digite o valor do salario: ");
        scanf("%f", &SalAntigo);
        SalNovo=ReajSalNovo(SalAntigo);
        printf("Sal_antigo: %.2f\tSal_novo: %.2f\n",SalAntigo,SalNovo);
        }
}
float ReajSalNovo(float sal_novo)
{
    //Condicionais que calculam o salário antigo com o reajuste para o sal_novo.
    if(sal_novo<800)
    {
        sal_novo=sal_novo+sal_novo*0.15;
    }else if(sal_novo>=800 && sal_novo<=1000)
    {
        sal_novo=sal_novo+sal_novo*0.10;
    }else{
        sal_novo=sal_novo+sal_novo*0.05;
    }
    return sal_novo;
}

 

  • Curtir 1

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...