C++问题每次运行程序时,我都会输出"nan"作为输出

Khi*_*mad 6 c++ function nan

我被要求创建一个程序,其功能可以以米为单位改变高度到高度.我提出的功能,当我从功能清点我得到正确的值,但是当我在主清点它,我得到"男".我不明白为什么价值不打印.这是我第一次使用这个网站,所以如果我错过了什么,我很抱歉.

#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)

Bla*_*aze 7

这个功能在这里:

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)

您的编译器是否会为您的代码发出任何警告?如果没有,请尝试找出是否可以设置它以提供更多警告.大多数编制者通常抱怨缺少回报.