尝试创建一个简单的函数,将存储在辅助函数中的值返回给DEV-C ++中的main函数,我不确定它为什么不工作:/
我真的觉得它应该正常运行但是当我编译并运行程序时,它不会要求输入值并显示0,并且当0为输入值时,显示与语句一致的句子。
// This program asks user to enter IQ score and then displays a message
#include<iostream>
using namespace std;
double getIQ();
int main()
{
double iq = 0.0;
getIQ();
if (iq > 120)
{
cout << "You are a genius" << endl;
}
else
{
cout << "You don't need a high IQ to be a successful person" << endl;
}
system("pause");
return 0;
}
double getIQ()
{
double iq = 0.0;
cout << "Enter IQ score: " << iq << endl;
return iq;
}
答案 0 :(得分:3)
有两个问题,你没有指定getIQ()
的返回值:
double iq = getIQ() ;
您需要cin
中的getIQ()
:
double getIQ()
{
double iq = 0.0;
cout << "Enter IQ score: " ;
cin >> iq ;
return iq;
}
此外,我建议不要“使用system("pause")
,请参阅System(“pause”); - Why is it wrong?,反对使用using namespace std;
,请参阅Why is 'using namespace std;' considered a bad practice in C++?。
答案 1 :(得分:2)
你非常接近,
您只需将getIQ
函数返回的值存储到iq
:
iq = getIQ();
这会将getIQ
返回的double存储到您之前设置的iq
变量中。
你也可以这样做:
double iq = getIQ();
要显示getIQ
中的内容,您应该将输入获取行更改为:
cout << "Enter IQ Score";
cin >> iq;
cout << endl;
不要忘记检查他们是否输入了数字。
答案 2 :(得分:1)
问题是您没有将getIQ()的返回值分配给iq,并且您的getIQ()函数没有接收用户输入。实际上你可以通过做一些重构来摆脱那个iq变量:内联temp(根据Martin Fowler的重构书)。因为iq是一个临时变量来保存getIQ()函数的返回值。这样可以避免出错。同时,您需要使getIQ()函数返回用户输入,如其他答案中所示。
int main()
{
if (getIQ() > 120)
{
cout << "You are a genius" << endl;
}
else
{
cout << "You don't need a high IQ to be a successful person" << endl;
}
cin.get();//you can use cin.get() in C++;
return 0;
}