此程序針對每個條件運行所有函數,而且每個條件只應運行一個函數。爲什麼?我應該編寫函數來計算球體,圓柱體和圓錐體的體積和表面積:我無法弄清楚它是如果混亂起來的if語句,還是函數本身。 該程序的理想輸出如下:如何使用在C++中具有多個參數的if語句調用多個函數
選擇形狀(1)球體(2)圓柱體(3)圓錐體(q)退出:1 選擇計算(1)體積(2)表面積:1 輸入球體的半徑:球體的5.5 體積是696.91
選擇形狀(1)球(2)筒(3)錐形(q)中退出:1 選擇一個計算(1)體積(2 )表面積:2 球體半徑輸入:5.5 球體表面積爲380.133
選擇一個形狀(1)體積(2)圓柱體(3)圓錐體(q)退出:2 汽缸是399.139
選擇形狀(1)球(2)筒(3)錐形(q)中退出:2 選擇一個計算(1)體積(2)表面積:2 輸入氣缸的半徑:5.5 輸入氣缸的高度:氣缸的4.2 表面積是335.208
選擇形狀(1)球(2)筒(3)錐形(q)中退出:3 選擇一個小樣utation(1)體積(2)表面積:1 輸入錐體的半徑:5.5 輸入錐體的高度:4.2 卷錐體的是133.046
選擇形狀(1)球(2)筒(3)錐(q)退出:3 選擇一個計算(1)體積(2)表面積:2 輸入錐體的半徑:5.5 輸入錐體的高度:4.2 錐形的表面積是214.607
選擇形狀(1)球體(2)圓柱體(3)圓錐體(q)退出:q
再見!
#include <iostream>
#include <math.h>
using namespace std;
double sphere_volume(double radius);
double sphere_surface_area(double radius);
double cylinder_volume(double radius, double height);
double cylinder_surface_area(double radius, double height);
double cone_volume(double radius, double height);
double cone_surface_area(double radius, double height);
int main()
{
double entHeight;
double entRadius;
char shapeCall;
char compCall;
cout << "Select a Shape (1) sphere (2) cylinder (3) cone (q) quit: ";
cin >> shapeCall;
cout << "Select a Computation (1) volume (2) surface area: ";
cin >> compCall;
if (shapeCall == 1)
{
if (compCall == 1)
cout << "Enter Radius: ";
cin >> entRadius;
cout << sphere_volume (entRadius) << endl;
}
if (shapeCall == 1)
{
if (compCall == 2)
cout << "Enter Radius: ";
cin >> entRadius;
cout << sphere_surface_area (entRadius) << endl;
}
if (shapeCall == 2)
{
if (compCall == 1)
cout << "Enter Radius: ";
cin >> entRadius;
cout << "Enter Height: ";
cin >> entHeight;
cout << cylinder_volume (entRadius, entHeight) << endl;
}
if (shapeCall == 2)
{
if (compCall == 2)
cout << "Enter Radius: ";
cin >> entRadius;
cout << "Enter Height: ";
cin >> entHeight;
cout << cylinder_surface_area (entRadius, entHeight) << endl;
}
if (shapeCall == 3)
{
if (compCall == 1)
cout << "Enter Radius: ";
cin >> entRadius;
cout << "Enter Height: ";
cin >> entHeight;
cout << cone_volume (entRadius, entHeight) << endl;
}
if (shapeCall ==)
{
if (compCall == 2)
cout << "Enter Radius: ";
cin >> entRadius;
cout << "Enter Height: ";
cin >> entHeight;
cout << cone_surface_area (entRadius, entHeight) << endl;
}
return 0;
}
double sphere_volume(double radius)
{
double sphereVolume;
sphereVolume = 3.14 * pow(radius, 3) * 4/3;
return sphereVolume;
}
double sphere_surface_area(double radius)
{
double sphereSurfArea = 4 * 3.14 * pow(radius, 2);
return sphereSurfArea;
}
double cylinder_volume(double radius, double height)
{
double cylinderVolume = 3.14 * pow (radius, 2) * height;
return cylinderVolume;
}
double cylinder_surface_area(double radius, double height)
{
double cylinderSurfArea = 2 * 3.14 * pow (radius, 2) + 2 * 3.14 * radius * height;
return cylinderSurfArea;
}
double cone_volume(double radius, double height)
{
double coneVolume;
coneVolume = (1/3) * 3.14 * pow (radius, 2) * height;
return coneVolume;
}
double cone_surface_area(double radius, double height)
{
double coneSurfArea = 3.14 * pow (radius, 2) + 3.14 * sqrt(pow (radius, 2) + pow (height, 2));
return coneSurfArea;
}
如果您提供了真實的代碼並對其進行一致格式化,這將會很有幫助。 – 2013-02-23 09:41:45
我也試過這種格式,它也不起作用 – 2013-02-23 10:00:36
什麼是「這種格式」?格式化可以自動化,但如果這不是一個選項,則需要手動完成。 – 2013-02-25 06:41:22