viciado 1 Denunciar post Postado Junho 17, 2008 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
_Isis_ 202 Denunciar post Postado Junho 17, 2008 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
viciado 1 Denunciar post Postado Junho 17, 2008 como, não entendi? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 17, 2008 Overflow Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 17, 2008 me diga ql o resultado esperado? Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Junho 17, 2008 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
viciado 1 Denunciar post Postado Junho 17, 2008 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
_Isis_ 202 Denunciar post Postado Junho 17, 2008 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
viciado 1 Denunciar post Postado Junho 18, 2008 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
José Enésio 4 Denunciar post Postado Junho 18, 2008 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
viciado 1 Denunciar post Postado Junho 18, 2008 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
quitZAUMMM 18 Denunciar post Postado Junho 18, 2008 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
viciado 1 Denunciar post Postado Junho 19, 2008 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
José Enésio 4 Denunciar post Postado Junho 19, 2008 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