2013-05-07 122 views
2

代碼工作正常,但問題是計算。我怎樣才能調用立方函數 SphereVol函數,所以它計算正確?如何在其他函數C++中調用函數?

的公式 - 如果你想知道 - 對於一個球體的體積 4/3 * 3.1416 *半徑(立方)

#include <iostream> 
using namespace std; 


const float PI = 3.1416;        

float SphereVol(float num);       
float Cube(float radius); 

void main() 
{ 
    float r, 
    radius; 

    cout << "Enter a radius: "; 
    cin >> radius; 

    r = SphereVol(radius); 
    cout << "Volume of a sphere with a radius " << radius << " is " << r; 


} 

float SphereVol(float num) 
{ 
    float r; 

    r = ((4/3) * PI * Cube(num)); 

    return r; 
}  

float Cube(float radius) 
{ 
    float num; 

    num = (radius * radius * radius);  

    return num; 
} 
+2

在'4/3'中有整數除法。你可能想要'4/3.f'。 – 2013-05-07 03:25:15

回答

7
r = ((4/3) * PI * Cube(num)); 

應該

r = ((4.0f/3.0f) * PI * Cube(num)); 

否則,整數除法將被截斷爲1。 你的函數調用看起來OK。您可以刪除這些臨時變量:

float SphereVol(float num) 
{ 
    return ((4.0f/3.0f) * PI * Cube(num)); 
} 

float Cube(float radius) 
{ 
    return (radius * radius * radius);  
} 
+0

感謝它的工作! – 2013-05-07 03:26:27

+0

@MohammedFahad歡迎您! – taocp 2013-05-07 03:27:27

+2

@MohammedFahad如果taocp的答案適合你,請接受它作爲答案:-) – 2013-05-07 03:32:46

相關問題