我正在解决一个小问题,并花了几个小时试图弄清楚我做错了什么。使用Dev ++编译器,有时会有一些神秘的错误消息。
我试图让Volume计算成为一个函数并使其工作,但我有2个小尼特。在解决此问题后,我将继续进行错误检查。
添加了该功能,由于某些原因,现在使用dev ++,程序不会暂停(按任意键继续)。
卷是空白而不是数字。
由于 PC
// The purpose of this program is to determine the Volume of a
// square-based pyramid after the user inputs the Area and
// the Height.
#include <iostream>
#include <iomanip>
using namespace std;
double calcvolume(double a, double h)
{
double volume;
volume = ( a * h ) / 3;
return (volume);
}
int main()
{
double area, height, volume; // declare variables
cout << "Please enter the Area of the Square-based pyramid:"; // requests users input
cin >> area; // assigns user input to area
cout << "Please enter the Height of the Square-based pyramid:"; // requests user input
cin >> height;
// assigns user input to height
cout << "Area= " << area << "\n"; // Prints user input for area
cout << "Height= " << height << "\n";
calcvolume(area,height);
cout << "Volume= " << fixed << showpoint << setprecision(2) << volume << "\n"; // Prints resolution to the formula stored in volume
system("pause"); // forces DOS window to pause to allow user to utilize program
return 0;
}
答案 0 :(得分:1)
您更新的代码看起来是正确的,但您没有存储calcvolume返回值。您在calcvolume中声明的音量变量与您在main中声明的音量变量不同。这些变量中的每一个都只能在声明它的函数中引用。
为了节省音量,
calcvolume(area,height);
应该是
volume = calcvolume(area,height);
这会将calcvolume中返回的值存储在主函数的volume
变量中。
答案 1 :(得分:0)
您必须将calcvolume(area,height)
的结果分配给主volume
,如下所示:
volume = calcvolume(area,height);
现在您可以安全地使用main的音量变量。
我猜你的程序甚至没有到达system("pause")
行,并且正在崩溃上面的行。可能是因为volume
从未设置为任何东西而且持有垃圾数据。这个垃圾数据导致cout << ...
失败。
在修复calcvolume(area,height)
行之前,请尝试修改变量声明,以便将变量初始化为零:
double area=0.0, height=0.0, volume=0.0; // declare variables
现在再次运行它,看它是否输出Volume=0.00
并暂停。
将变量初始化为零或有意义的东西总是好的。否则,它们将被初始化为随机数据(这些内存字节中已有的数据)并且将使故障排除更加困难。