我被要求创建一个程序,其功能可以以米为单位改变高度到高度.我提出的功能,当我从功能清点我得到正确的值,但是当我在主清点它,我得到"男".我不明白为什么价值不打印.这是我第一次使用这个网站,所以如果我错过了什么,我很抱歉.
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double heightInMeters(double feet , double inches)
{
double footToMeter = 0.305;
double inchToMeter = 0.0254;
double heightInMeters = ((footToMeter * feet) + (inchToMeter * inches));
cout << heightInMeters << endl;
}
int main()
{
double feet, inches, calcheight;
char ch;
cout << "Enter your height [Use format ft-in]: ";
cin >> feet >> ch >> inches;
calcheight = heightInMeters(feet, inches);
cout << calcheight << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这个功能在这里:
double heightInMeters(double feet , double inches)
{
double footToMeter = 0.305;
double inchToMeter = 0.0254;
double heightInMeters = ((footToMeter * feet) + (inchToMeter * inches));
cout << heightInMeters << endl;
}
Run Code Online (Sandbox Code Playgroud)
没有回来任何东西.这是未定义的行为,你得到的是什么
calcheight = heightInMeters(feet, inches);
Run Code Online (Sandbox Code Playgroud)
那么很可能只是一些无效的垃圾价值.也许不是这样的:
cout << heightInMeters << endl;
Run Code Online (Sandbox Code Playgroud)
你想要这个:
return heightInMeters;
Run Code Online (Sandbox Code Playgroud)
您的编译器是否会为您的代码发出任何警告?如果没有,请尝试找出是否可以设置它以提供更多警告.大多数编制者通常抱怨缺少回报.