As variáveis p, s e t são mesmo necessárias no programa abaixo? É possível refazer o programa usando apenas a variável d?
#include <stdio.h>
#include <stdlib.h>
int main()
{
float d,p,s,t;
scanf("%f",&d);
p = d + 0.01*d;
s = p + 0.01*p;
t = s + 0.01*s;
printf("Valor final = %.2f\n",t);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
float d,p,s,t;
scanf("%f",&d);
p = d + 0.01*d;
s = p + 0.01*p;
t = s + 0.01*s;
printf("Valor final = %.2f\n",t);
return 0;
}
Passo 1
O enunciado pede para analisar se as variáveis p, s e t realmente são necessárias num programa em C que aplica três incrementos de 1% sobre um valor inicial d, e, se possível, reescrever usando apenas d. O conteúdo envolve reutilização de variáveis e operações aritméticas em C.
Passo 2
Cada atribuição original faz d → p → s → t, onde em cada passo adicionamos 1% ao valor corrente. Como C permite sobrescrever a mesma variável, podemos simplesmente atualizar d três vezes em sequência, cada vez fazendo d = d + 0.01*d.
Passo 3
Para simplificar ainda mais, note que aplicar um aumento de 1% três vezes é o mesmo que multiplicar por (1,01)³. Então podemos usar uma única linha aritmética d = d * 1.01 * 1.01 * 1.01 ou d *= 1.01 * 1.01 * 1.01.
Passo 4
Basta ler d, atualizar d conforme o aumento desejado e imprimir o resultado. Desse modo não precisamos de p, s nem t, só de d no programa.
Resposta
#include <stdio.h>
#include <stdlib.h>
int main()
{
float d;
scanf("%f", &d);
d *= 1.01f * 1.01f * 1.01f; // aplica 1% três vezes
printf(“Valor final = %.2f\n”, d);
return 0;
}
#include <stdlib.h>
int main()
{
float d;
scanf("%f", &d);
d *= 1.01f * 1.01f * 1.01f; // aplica 1% três vezes
printf(“Valor final = %.2f\n”, d);
return 0;
}