2

コードは正常に動作しますが、問題は計算です。Cube 関数を SphereVol 関数に呼び出して正しく計算するにはどうすればよいですか?

ご参考までに、球体の体積の式は 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;
}
4

1 に答える 1

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

する必要があります

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

それ以外の場合、整数除算は代わりに 1 に切り捨てられます。関数呼び出しは問題ないようです。これらの一時変数を削除できます。

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

float Cube(float radius)
{
   return (radius * radius * radius );       
}
于 2013-05-07T03:25:04.840 に答える