Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gRoOvE

em multiplicacao entre int e floa

Recommended Posts

ae galera, tenho q fazer um programinha pra mostrar quanto vai ser pago de imposto de renda por mes, mas to com uma duvida em uma parte do programa, segue o codigo:

 

#include "stdafx.h"

void main(void)
{
	//variaveis
	int dependentes;
	float salario, desconto_dep, salario_desc, IR;
	#define salario_minimo 400.00

	//entrada
	printf("\t------------------------------------------------------");
	printf("\n\t|	  PROGRAMA PARA CALCULAR IMPOSTO DE RENDA	   |\n");
	printf("\t------------------------------------------------------\n\n");

	printf("Digite seu salario: R$");
	scanf("%f",&salario);

	printf("Digite quantos dependentes possui: ");
	scanf("%d",&dependentes);

	//processamento e saida
	desconto_dep = dependentes * 0.05 * salario; (DUVIDA 1)
	printf("\nDesconto com dependentes: %.2f",desconto_dep);
	salario_desc = salario - desconto_dep;
	printf("\n\nSalario ajustado com o desconto: %.2f\n",salario_desc);
	
	if((salario < 0) || (dependentes < 0))
	{
		printf("Salario ou Dependentes invalidos\n");
	}
	else
	{
		if(salario_desc < (2 * salario_minimo))
		{
			printf("\nIsento do imposto de renda\n");
		}
		else if( (salario_desc > (2 * salario_minimo)) && (salario_desc <= (3 * salario_minimo)) )
		{
			IR = salario_desc * (5/100); (DUVIDA 2)
			printf("\nValor a pagar: R$%.3f\n",IR);
		}
		else if( (salario_desc > (3 * salario_minimo)) && (salario_desc <= (5 * salario_minimo)) )
		{
			IR = salario_desc * 10 / 100; (DUVIDA 2)
			printf("\nValor a pagar: RS%.3f\n",IR);
		}
		else if( (salario_desc > (5 * salario_minimo)) && (salario_desc <= (7 * salario_minimo)) )
		{
			IR = salario_desc * 15 / 100;
			printf("\nValor a pagar: RS%.3f\n",IR);
		}
		else if( (salario_desc > (7 * salario_minimo)) )
		{
			IR = salario_desc * 20 / 100;
			printf("\nValor a pagar: RS%.3f\n",IR);
		}
	}
}
ali em (DUVIDA 1) o 0.05 seria 5/100, q seria a porcentagem, mas seu eu coloco 5/100 nao faz a conta, fica td zero, pq isso ??

e em (DUVIDA 2) a conta é feita mas se eu coloco parenteses entre a divisao, q eh porcentagem tb, a conta nao eh feita, fica td zero tb "/

Compartilhar este post


Link para o post
Compartilhar em outros sites

ali em (DUVIDA 1) o 0.05 seria 5/100, q seria a porcentagem, mas seu eu coloco 5/100 nao faz a conta, fica td zero, pq isso ??

 

Porque você está fazendo operação com inteiros. 5 / 100 tem quociente 0 e resto cinco. Coloque 0.05.

 

 

e em (DUVIDA 2) a conta é feita mas se eu coloco parenteses entre a divisao, q eh porcentagem tb, a conta nao eh feita, fica td zero tb

 

Pelo mesmo motivo de antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas se fosse seguir a logica nao daria na msm ?? pois 0.05, como eh operacao com inteiros nao ia "ver" apenas o 0 e descataria o 0.05 ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o erro esta em qrer dividir dois inteiros!

divisão de inteiros gera resultado inteiro!

 

mal por responder agora é q soh vi agora esse tópico http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.