2014-11-07 92 views
-4

我正在研究下面的程序,我希望程序做同樣的事情,但沒有一個main()函數,而是一個main()函數加一個用戶定義函數computeConeVolume,它包含計算。換句話說,我想刪除一行計算並將其替換爲一個函數調用,然後在計算中編寫main函數並將其添加,幷包含我需要的其他任何語法來完成它。錐體積計算器程序

該函數應該包含局部變量和常量聲明並且必須進行計算,它可能不會執行任何其他操作,如輸入或輸出。 應該能夠在任何地方聲明「全局」變量,但main()之外或之外沒有變量並且該函數是允許的。 應該使用值返回函數,因爲它理解起來有點簡單,但可以使用void函數。 需要在代碼頂部有一個函數原型,然後是main,然後是你的函數。

需要一些幫助,因爲我是新來的C++和試圖學習。

//Cone Volume Calculator Program 

#include <iostream> 
using namespace std; 

int main() 
{ 
    //Declare variables and constants 
    double coneRadius = 0.0; 
    double coneHeight = 0.0; 
    const double PI = 3.1415; 
    double coneVolume = 0.0; 

    //Prompt the user for inputs 
    cout << "Enter the radius of the cone: "; 
    cin >> coneRadius; 
    cout << "Enter the height of the cone: "; 
    cin >> coneHeight; 

    //Do the calculation 
    coneVolume = 0.3333 * PI * coneRadius * coneRadius * coneHeight; 

    //Display the result 
    cout << "The volume of your cone is: " << coneVolume << endl; 

    system("pause"); 
    return 0; 
} //end of main 
+3

你有確切要求的功能,所以你應該能夠做出的第一次嘗試,並在這裏展示我們改進。如果你不知道從哪裏開始,你可以在線搜索功能教程。 – 2014-11-07 02:00:41

回答

-2

這個怎麼樣程序

#include <cmath> 
#include <iostream> 
using namespace std; 
double coneVolume(double, double); 
int main() 
{ 
    //Declare variables and constants 
    double coneRadius = 0.0; 
    double coneHeight = 0.0; 

    //Prompt the user for inputs 
    cout << "Enter the radius of the cone: "; 
    cin >> coneRadius; 
    cout << "Enter the height of the cone: "; 
    cin >> coneHeight; 

    //Do the calculation 

    //Display the result 
    cout << "The volume of your cone is: " << coneVolume(coneRadius, coneHeight) << endl; 

    system("pause"); 
    return 0; 
} //end of main 

double coneVolume(double coneRadius, double coneHeight) 
{ 
    double PI = acos(-1.0); 
    double volume = coneRadius * coneRadius * coneHeight * PI/3.0; 
    return volume; 
} 

請注意,我說的CMATH庫,以使用ACOS功能。

double PI = acos(-1.0); 

我在一段代碼中讀到了這個技巧,這段代碼是一個用C++做三角函數的代碼。 當我計算音量時,我沒有使用任何種類的括號,因爲*和/都處於相同的優先順序並且從左到右進行評估。我除以3.0,因爲我使用雙打。對於函數的原型是正確的主要功能

double coneVolume(double, double); 

上面我剛寫的函數參數的類型作爲唯一的函數的參數是需要propotypes類型。

+3

如果你能解釋原始問題並解釋你爲什麼這樣做,那麼這個答案會很有用。當你爲他們做工時,沒有人會學到任何東西。 – 2014-11-07 04:07:48

+0

['M_PI'](http://stackoverflow.com/questions/1727881/how-to-use-the-pi-constant-in-c) – 2014-11-07 04:46:31

1

我試圖回收一些Amadeus的答案並使用您的一些代碼。

首先,你應該定義函數,你想計算的錐體積與。類似於

double coneVolume(double, double); 

您應該注意始終將主函數留在.c文件的末尾。

你還需要的是你的函數的聲明。這是你真正寫下功能的地方。

double coneVolume(double coneRadius = 0.0, double coneHeight = 0.0) { 
    double coneVolume = coneVolume = 0.3333 * PI * coneRadius * coneRadius * coneHeight; 
    return coneVolume; 
} 

方法頭中的值設置只是默認值的一種,這裏並不是真正需要的,只是爲了向您展示。

const double PI = 3.1415;在哪裏?在你的功能之上的某個地方,它在你的文檔中隨處可見。你也可以考慮使用include包含math.h,那麼你可以使用M_PI,這與你的PI常數大致相同。(更準確地說,它是一個定義,它可以代替任何時候用實際的Pi值寫入M_PI)

如果你真的想要函數只是在沒有輸入的情況下計算(爲什麼你會想要),你可以定義它們就像在你的主體中一樣。

注意:全局範圍總是超出主要方法。

如果有更多的疑問,請諮詢:)

+0

擴展:可以輕鬆完成返回(數學運算使用2個變量)在你的coneVolume()方法中,而不是實際的聲明和返回。所有偏好。 – user2277872 2016-07-19 04:20:02

+0

當然,這是正確的。我指的是他的任務:「函數應該包含局部變量[...]應該使用值返回函數,因爲它理解起來有點簡單,但是可以使用void函數。」 – Cadoiz 2016-07-20 01:46:01

+0

啊,我明白了。很好的答案,只是擴大它以提供清晰度。 – user2277872 2016-07-20 02:42:53