Ir para conteúdo

POWERED BY:

Arquivado

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

viciado

Problema funcionario

Recommended Posts

Funcionario foi contratado em 1995 com salario de RS1000,00.

Em 1996 recebeu aumento de 1,5% .

A partir de 1997 (inclusive) os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior.

 

 

Eu fiz esse programa:

 

 

#include <stdio.h>

int main(void)
{
	 int a,i,salario;
	 double porcent;
	  porcent=1.5;
	  a=1996;
	  salario=1000;

	  for(i=a; i<=2008; i++)
		  {
			porcent=porcent*2;
			salario=salario*(porcent+1);
		  }

		printf("\n%d é o salario atual\n",salario);
		   return(0);
}

 

 

So que a resposta que o programa me da é um numero negavitivo. Alguem sabe qual o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que não é porque você ultrapassou o limite positivo e está calculando com numeros negativos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cálculo de porcentagem está errado. O correto seria:

salario+=(salario*porcent)/100;

 

Além disso, realmente os valores estão quebrados. Veja só:

#include <stdio.h>

int main(void)
{
	 unsigned int a,i,salario;
	float porcent;
	  porcent=1.5;
	  a=1996;
	  salario=1000;

	  printf("p:%e - s:%u\n", porcent, salario);
	  for(i=a; i<=2008; i++)
		  {
			porcent*=2;
			salario+=(salario*porcent)/100;
			printf("p:%e - s:%u\n", porcent, salario);
		  }

		printf("\n%u é o salario atual\n",salario);
		getchar();
		   return(0);
}

Tente rodar. Se você puder me dizer alguma empresa onde em 12 anos eu esteja recebendo R$3239865585,00 por mês, eu gostaria muito de saber onde é porque eu estou precisando de um emprego desses.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cálculo de porcentagem está errado. O correto seria:

salario+=(salario*porcent)/100;

 

Além disso, realmente os valores estão quebrados. Veja só:

#include <stdio.h>

int main(void)
{
	 unsigned int a,i,salario;
	float porcent;
	  porcent=1.5;
	  a=1996;
	  salario=1000;

	  printf("p:%e - s:%u\n", porcent, salario);
	  for(i=a; i<=2008; i++)
		  {
			porcent*=2;
			salario+=(salario*porcent)/100;
			printf("p:%e - s:%u\n", porcent, salario);
		  }

		printf("\n%u é o salario atual\n",salario);
		getchar();
		   return(0);
}

Tente rodar. Se você puder me dizer alguma empresa onde em 12 anos eu esteja recebendo R$3239865585,00 por mês, eu gostaria muito de saber onde é porque eu estou precisando de um emprego desses.

 

 

 

Ficou um valor muito grande

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em 1996 ele vai rececber 3% de aumento,e nao 1,5% como se pede.

 

for(i=a; i<=2008; i++)
	  {
		porcent*=2;
		salario+=(salario*porcent)/100;
		printf("p:%e - s:%u\n", porcent, salario);
	  }

 

Correto:

1996: 1015,00 (1,5%)

1997: 1045,45 (3%)

1998: 1108,17 (6%)

 

O q o for faz:

1996: 1030,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em 1996 ele vai rececber 3% de aumento,e nao 1,5% como se pede.

 

for(i=a; i<=2008; i++)
		  {
			porcent*=2;
			salario+=(salario*porcent)/100;
			printf("p:%e - s:%u\n", porcent, salario);
		  }

Correto:

1996: 1015,00 (1,5%)

1997: 1045,45 (3%)

1998: 1108,17 (6%)

 

O q o for faz:

1996: 1030,00

 

 

Em 1996 recebeu um aumento de 1,5% sobre o salário inicial.

 

 

O que é porcent*=2??? É a mesma coisa que porcent=porcent*2???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em 1996 ele vai rececber 3% de aumento,e nao 1,5% como se pede.

 

for(i=a; i<=2008; i++)
		  {
			porcent*=2;
			salario+=(salario*porcent)/100;
			printf("p:%e - s:%u\n", porcent, salario);
		  }

Correto:

1996: 1015,00 (1,5%)

1997: 1045,45 (3%)

1998: 1108,17 (6%)

 

O q o for faz:

1996: 1030,00

 

 

Em 1996 recebeu um aumento de 1,5% sobre o salário inicial.

 

 

O que é porcent*=2??? É a mesma coisa que porcent=porcent*2???

 

Ilsson mesmo... são uns operadores que poupam um pouco de trabalho na hora de escrever... tem para as outras operações também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não eu preciso apenas mostrar o resultado final sem o printf dentro do laço for.Só que se eu tirar do laço a resposta é um número muito grande

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao mew ver realmente vai dar um numero grande, pq você a kd ano ele tem o dobro de porcentagem do ano passado ai fica:

96 = 1.5%

97 = 3.0%

98 = 6.0%

99 = 12.0%

00 = 24.0%

01 = 48.0 %

02 = .

03 = .

04 = .

05 = .

06 = .

07 = .

08 = 6144.0%

 

outra coisa o porcent tem q começar com 0.75 pq ele fica o dobro em 96!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao mew ver realmente vai dar um numero grande, pq você a kd ano ele tem o dobro de porcentagem do ano passado ai fica:

96 = 1.5%

97 = 3.0%

98 = 6.0%

99 = 12.0%

00 = 24.0%

01 = 48.0 %

02 = .

03 = .

04 = .

05 = .

06 = .

07 = .

08 = 6144.0%

 

outra coisa o porcent tem q começar com 0.75 pq ele fica o dobro em 96!

 

[]'s

 

 

Ai vlw. Mais o salario dele em 1995 é 1000 em 1996 aumento 1.5% so vai começar a dobrar a porcentagem a partir de 1997

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então aqui:

porcent*=2;
salario+=(salario*porcent)/100;

Você passa porcent*=2; para baixo.

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.