2013-04-03 45 views
0

好的,所以我正在做这个家庭作业,我的老师的第一语言不是英语,并不总是最好的指导方向。我试图编写一个程序,要求获得中期分数和期末考试分数,然后添加这两个值来显示总分。多次调用同一函数返回值的问题

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

这里是我的代码:

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

回答

1

期中== getNcheckScore(期中,最终);

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

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)