C ++将用户输入的变量传递给函数的参数

时间:2012-11-01 23:22:27

标签: c++ parameters

在编程方面,我是一个巨大的菜鸟,但我一直在关注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;
}

4 个答案:

答案 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函数的右大括号之前。