Chodzi tutaj o to, że kompilator traktuje 4 i 3 jako liczby typu int. Czyli 4 / 3 to 1 bez części ułamkowej. Możesz to poprawić na kilka sposobów:
Pi*r*r*r*4/3 // tu chyba kompilator się domyśli sam...
4.0/3.0*PI*r*r*r // podanie kompilatorowi, że 4 i 3 to dwie liczby zmiennoprzecinkowe
(float) 4/3*PI*r*r*r // rzutowanie
static_cast<float>(4)/3*PI*r*r*r // rzutowanie
Warto zapamiętać rzutowanie. Przyda się gdy nie będzie można dopisać zera:
int a = 1;
int b = 3;
cout<<a/b<<endl;
cout<<(float) a/b<<endl;