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;
}

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;
}

Exercícios relacionados