【问题标题】:Issue with returning values from invoking same function multiple times多次调用同一函数返回值的问题
【发布时间】:2013-04-03 01:44:08
【问题描述】:

好的,我正在做这个家庭作业,我老师的母语不是英语,而且并不总是最擅长指路。我正在尝试编写一个程序,要求提供期中成绩和期末考试成绩,然后将这两个值相加以显示总分。

我的问题是它似乎没有返回输入的分数或将它们存储在各自的变量中以便加在一起(也就是总显示为零)

这是我的代码:

// Lab11P2.cpp

#include<iostream>
using namespace std;

double getNcheckScore(double, double);

int main()
{
    double midterm = 0.0;
    double final = 0.0;
    double total =0.0;

    cout << "MIDTERM EXAM" << endl;
    midterm == getNcheckScore(midterm, final);

    cout << "FINAL EXAM" << endl;
    final == getNcheckScore(midterm, final);

    total = midterm + final;
    cout << "Total score: " << total << endl;   

    system("pause");
    return 0;
}

    double getNcheckScore(double midterm, double final)
{
    double score = 0.0;
    cout << "Please enter your score: ";
    cin >> score;
    while (score < 0 || score > 100)
    {
          cout << "Score must be between 0 and 100.  Please enter again: ";
          cin >> score;
    } 
    return score;
}

【问题讨论】:

    标签: c++ return invoke


    【解决方案1】:

    您在这里使用的是== 而不是=:

    midterm == getNcheckScore(midterm, final);
    

    这里:

    final == getNcheckScore(midterm, final);
    

    所以这些根本没有为这些变量赋值。这是在打开警告的情况下编译的一个很好的理由,因为您会看到如下内容:

    warning: value computed is not used [-Wunused-value]
     midterm == getNcheckScore(midterm, final);
    

    这将是一个很好的线索。此外,您没有对函数的两个参数做任何事情:

    double getNcheckScore(double midterm, double final)
    

    但如果您打算最终通过这些参数传回数据,则它们需要成为引用,如下所示:

    double getNcheckScore(double &midterm, double &final)
    

    【讨论】:

      【解决方案2】:

      midterm == getNcheckScore(midterm, final);

      不要使用 ==,这是一个比较运算符。使用 = 进行赋值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-07
        相关资源
        最近更新 更多