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

Issue with returning values from invoking same function multiple times

本文关键字:返回值 问题 函数 调用      更新时间:2023-10-16

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

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

下面是我的代码:
// 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;
}

您使用的是==而不是=:

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)

期中考试== getNcheckScore(期中考试,期末考试);

不要使用==,这是一个比较操作符。