I am writing a program where I calculate the area of a circle, the volume of a sphere, and the surface area of a sphere and I need a way to get one source of user input. I don’t want the program to keep asking for user input the way that it is in the functions.

**I want my program to run like this:**

`Enter a radius in inches: 3.3`

`Area of a circle is 34.21 square inches`

`Volume of a sphere is 150.53 cubic inches`

`Surface area of a sphere is 136.85 square inches`

**This is what I have so far though:**

```
#include <iostream>
#include <cmath>
#define Pi 3.1415
using namespace std;
void area_of_circle() {
double radius;
std::cout << "Enter a radius in inches: " << endl;
cin >> radius;
double areaCircle = Pi * radius * radius;
std::cout << "The area of the circle is " << std::ceil(areaCircle * 100.0) / 100.0 << " square inches";
}
void volume_of_sphere() {
double radius;
std::cout << "Enter a radius in inches: " << endl;
cin >> radius;
double volumeSphere = (4/3) * Pi * radius * radius * radius;
std::cout << "The volume of the sphere is " << std::ceil(volumeSphere * 100.0) / 100.0 << " cubic inches";
}
void surface_area_of_sphere() {
double radius;
std::cout << "Enter a radius in inches: " << endl;
cin >> radius;
double surfaceAreaSphere = 4 * Pi * radius * radius;
std::cout << "The volume of the sphere is " << std::ceil(surfaceAreaSphere * 100.0) / 100.0 << " square inches";
}
int main() {
area_of_circle();
volume_of_sphere();
surface_area_of_sphere();
}
```

Can someone help, please?

I tried getting creating a separate function to deal with input, but it’s not working:

```
void input() {
std::cout << "Enter a radius in inches: " << endl;
}
int main() {
double radius;
area_of_circle();
volume_of_sphere();
surface_area_of_sphere();
}
```

### >Solution :

- Get an input
- Store the input to a variable
- Pass the input value as an argument

```
#include <iostream>
#include <cmath>
#define Pi 3.1415
using namespace std;
double input() {
double radius;
std::cout << "Enter a radius in inches: " << endl;
cin >> radius;
return radius;
}
void area_of_circle(double radius) {
double areaCircle = Pi * radius * radius;
std::cout << "The area of the circle is " << std::ceil(areaCircle * 100.0) / 100.0 << " square inches";
}
void volume_of_sphere(double radius) {
double volumeSphere = (4/3) * Pi * radius * radius * radius;
std::cout << "The volume of the sphere is " << std::ceil(volumeSphere * 100.0) / 100.0 << " cubic inches";
}
void surface_area_of_sphere(double radius) {
double surfaceAreaSphere = 4 * Pi * radius * radius;
std::cout << "The volume of the sphere is " << std::ceil(surfaceAreaSphere * 100.0) / 100.0 << " square inches";
}
int main() {
double radius = input();
area_of_circle(radius);
volume_of_sphere(radius);
surface_area_of_sphere(radius);
}
```

Also note that `(4/3)`

, which is used in the function `volume_of_sphere`

, means `1`

because dividing an integer by an integer in C++ yields an integer.