Neste problema, João passa do posto A para o posto B e depois para o posto C, sempre nesta sequência.
#include <stdio.h>
int main(){
float d, h, a, b, c, volumeC;
scanf("%f %f %f %f %f", &d, &h, &a, &b, &c); //Entrada dos valores de diâmetro; comprimento; demandas dos postos A, B, C, respectivamente.
volumeC = (3.14*((d/2)*(d/2))*h)*1000; //Volume do cilindro de combustível do caminhão em litros: pi*(raio^2)*h*1000.
if (a<=volumeC){ //Verifica se o que há no cilindro supre a demanda do posto.
volumeC -= a; //Se sim, desconta do cilindro o que foi usado no posto.
printf("posto A foi reabastecido\n");
} else
printf("posto A nao foi reabastecido\n"); //Caso não, não abastece e também não desconta do cilindro.
if (b<=volumeC){ //O mesmo que ocorre em A, ocorre com B e C.
volumeC -= b;
printf("posto B foi reabastecido\n");
} else
printf("posto B nao foi reabastecido\n");
if (c<=volumeC){
volumeC -= c;
printf("posto C foi reabastecido\n");
} else
printf("posto C nao foi reabastecido\n");
return 0;
}