在编程方面,我是一个巨大的菜鸟,但我一直在关注youtube上的一些教程,我决定尝试混合不同视频中教授的一些概念。我想要做的是有一个函数有3个参数来计算股票市场投资的回报。在我的主要内容中,我想从用户那里获取函数的3个参数,并将每个参数存储在变量中,并在调用函数时将这些变量用于参数。我目前收到一个错误,但在我输入整个内容之前,我只会告诉你们我的代码,也许你可以发现问题。
#include <iostream>
#include <cmath>
using namespace std;
float stockMarketCalculator(float p, float r, int t){
float a;
for(int day = 1; day <=t; day++){
a = p * pow(1+r, day);
cout << a << endl;
}
}
int main()
{
float p;
float r;
int t;
cout << "Please enter the principle" << endl;
cin >> p >> endl;
cout << "Please enter the rate" << endl;
cin >> r >> endl;
cout << "Please enter the time in days" << endl;
cin >> t >> endl;
cout << stockMarketCalculator(p, r, t);
return 0;
}
答案 0 :(得分:1)
我读了你的原型
float stockMarketCalculator(float p, float r, int t)
并假设函数的返回很重要。 实际上,从main()函数中,您可以编写:
cout << stockMarketCalculator(p, r, t);
在原始代码中,会尝试写一些不确定的值。
如果您不关心返回值,则应使用:
void stockMarketCalculator(float p, float r, int t)
不要尝试cout
来自main()
的值 - 只需直接调用它(请参阅unziberla的回答)。
另一方面,如果您关心返回值,请在下面的原始答案中添加return
。如果您只关心最终值,那么这是一个更干净的界面。
原文答案:(后代)
您需要添加
return a;
致stockMarketCalculator
。
通常,这会被编译器报告为警告,但可能不依赖于您的设置。
答案 1 :(得分:1)
第一个错误:你的stockMarketCalculator函数应该返回值!
return a;
第二个错误(3次):在endl中不需要cin。只需删除它。
享受!
答案 2 :(得分:1)
您的代码已更正
#include <iostream>
#include <cmath>
using namespace std;
void stockMarketCalculator(float p, float r, int t)
{
float a;
for(int day = 1; day <= t; day++)
{
a = p * pow(1+r, day);
cout << a << endl;
}
}
int main()
{
float p;
float r;
int t;
cout << "Please enter the principle" << endl;
cin >> p;
cout << "Please enter the rate" << endl;
cin >> r;
cout << "Please enter the time in days" << endl;
cin >> t;
stockMarketCalculator(p, r, t);
return 0;
}
<强>更正强>
cin
信息流不需要endl
您不需要stockMarketCalculator
返回要打印的值,因为它已经打印了您想要的值,因此我将其声明为void
并在{{1}中简单地调用它功能。
答案 3 :(得分:0)
同意,你的stockMarketCalculator
函数说它会返回一个浮点数,但是没有返回语句。
return a;
位于for循环之后,位于stockMarketCalculator
函数的右大括号之前。