2015-12-21 10 views
0

Я пытаюсь написать программу, которая запрашивает радиус сферы, и в зависимости от того, вводит ли пользователь, хотят ли они объем или площадь поверхности, тогда это то, что программа вернется. (Прежде чем кто-нибудь скажет что-нибудь о том, что программа не выполняется, я знаю, я просто пытаюсь получить основу для работы, прежде чем добавить формулу для объема и т. Д.)Рассчитать объем и площадь поверхности сферы в C++

К сожалению, я даже не могу получить это многое для компиляции, потому что оно, похоже, не признает, что я объявил радиус.

Скорее всего, я совершил некоторые неосторожные ошибки, но в конце концов, мы учимся и растут из-за моих ошибок.

Я не хочу, чтобы это было выполнено для меня, я просто хочу руководство, где я ошибся.

#include <iostream> 
#include <cmath> 

using namespace std; 

void sphereArea(); 
void sphereVolume(); 

double pi = 3.141596, 
double radius = 0.0; 

int main() 
{ 

cout << "Please enter the radius of your sphere" << endl; 
cin >> radius; 
sphereArea(); 
system ("pause"); 
} 

void sphereVolume(){ 

} 

void sphereArea(){ 
double Vol; 
Vol = ((4.0/3.0) * pi * (radius^3)); 
cout << "The volume of your sphere is " << Vol << endl; 
} 

Edit: В настоящее время я получаю эти ошибки: 1. В строке 27 -> Ошибка C2296: '^': нелегальный, левый операнд имеет тип 'двойной' 2. Кроме того, на линии 27 (в отношении к радиусу) -> IntelliSense: выражение должно иметь целостную или незаданной тип перечисления

+0

Возможно, вы можете адаптировать [эту программу] (http://www0.us.ioccc.org/1988/westley.c)? :) – jtbandes

+1

какая ошибка вы получаете? на какой линии? – Jorgel

+5

'double pi = 3.141596,' Это не должно быть запятой в конце. – dxiv

ответ

4
Vol = ((4.0/3.0) * pi * (radius^3)); 

Pow()- это не сила. Это оператор bit-xor. Причина, по которой вы получаете сообщение об ошибке, заключается в том, что вы не можете выполнять побитную операцию с поплавками. Измените эту строку следующим образом:

Vol = ((4.0/3.0) * pi * (radius * radius * radius)); 

или вы можете использовать функцию pow(). Например:

Vol = ((4.0/3.0) * pi * (pow(radius, 3))); 
1
#include <iostream> 
#include <cmath> 

using namespace std; 

double pi = 3.141596; 
double radius = 0.0; 

void sphereArea(){ 
    double Vol; 
    Vol = ((4.0/3.0) * pi * (pow(radius, 3))); 
    cout << "The volume of your sphere is " << Vol << endl; 
} 

int main() 
{ 

    cout << "Please enter the radius of your sphere" << endl; 
    cin >> radius; 
    sphereArea(); 
    system ("pause"); 
} 

Вы можете воспользоваться функцией

Смежные вопросы