多次调用同一函数返回值的问题

时间:2013-04-03 01:44:08

标签: c++ return invoke

好的,所以我正在做这个家庭作业,而我老师的第一语言不是英语,并不总是最好的指导。我正在尝试编写一个程序,要求中期分数和期末考试分数,然后添加这两个值以显示总分。

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

这是我的代码:

// 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;
}

2 个答案:

答案 0 :(得分:3)

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

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)

答案 1 :(得分:1)

  

midterm == getNcheckScore(midterm,final);

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