Calculadora de decimo terceiro salário em C

Algo está errado no meu código,mas eu não sei o que é:

#include <stdio.h>

int main(void){
double salario,decimo_salario,n_meses;

printf("Digite o valor do salário mensal(Em Reais);");
if (scanf("%lf",&salario));
printf("Digite a quantidade de meses em que trabalhou:");
if (scanf("%lf",&decimo_salario));

decimo_salario=salario*n_meses/12.0;

printf("\n Seu décimo terceiro salario é de R$ %.2f\n",decimo_salario);
return 0;
}

O cálculo não seria assim?


decimo_salario=(salario/12)*n_meses;

No segundo scanf vc deveria ler n_meses em vez de decimo_salario.

1 curtida

Isso mesmo,você acertou,você é o fera mesmo.

Os dois cálculos são equivalentes.

Veja que se vc pegar sua fórmula e ir até o terceiro passo da figura, você chega na fórmula dele.

1. (salario/12) * n_meses
2. (salario/12) * (n_meses/1)
3. (salario*n_meses) / (12*1) = salario * n_meses / 12

Computacionalmente, a solução dele é melhor pq vc introduz imprecisão nas divisões. Se vc deixa para multiplicar depois, a imprecisão é multiplicada junto.

2 curtidas

Alguém pode me dizer o que significa isso? Comenta por favor para eu entender.

O %.2f serve será substituido pelo valor da variável. Esse código serve para indicar que ela é um número float que deve ser escrito com 2 casas após a vírgula.