【发布时间】:2015-10-19 00:18:56
【问题描述】:
我的程序计算每个学生的平均分数。它输出数值平均值和字母等级。通过这两个函数,我可以很好地得到每个学生的字母等级,但我不知道如何获得每个字母等级的总数。 (请注意,我不允许在此作业中使用结构、数组或向量等:( )
#include <iostream>
string letterScore(double&);
int scoreCounter(string&);
using namespace std;
int main() {
/* repeat for 5 students */
for (int i = 0; i < 5; i++) {
/* for simplicity, assume avgScore has already been calculated
and that function returned the average scores received for
each student: 90, 80, 70, 60, and 50 respectively */
// pass the average score to figure out letter grades
string letterscore = letterScore(avgScore);
}
return 0;
}
string letterScore(double& avgScore) {
int As, Bs, Cs, Ds, Fs = 0;
string letterscore;
if (avgScore >= 90)
{
letterscore = "A";
As = scoreCounter(letterscore);
}
else if (avgScore >= 80 && avgScore <= 89)
{
letterscore = "B";
Bs = scoreCounter(letterscore);
}
else if (avgScore >= 70 && avgScore <= 79)
{
letterscore = "C";
Cs = scoreCounter(letterscore);
}
else if (avgScore >= 60 && avgScore <= 69)
{
letterscore = "D";
Ds = scoreCounter(letterscore);
}
else if (avgScore >= 50 && avgScore <= 59)
{
letterscore = "F";
Fs = scoreCounter(letterscore);
}
return letterscore;
}
int scoreCounter(string& letterscore) {
int counter = 0;
if (letterscore == "A")
{
counter++;
}
else if (letterscore == "B")
{
counter++;
}
else if (letterscore == "C")
{
counter++;
}
else if (letterscore == "D")
{
counter++;
}
else if (letterscore == "F")
{
counter++;
}
return counter;
}
我知道问题在于第二个功能以及我如何连接这两个功能。目前,As、Bs、Cs、Ds、Fs 的输出为 0 而不是每个的 1(假设收到的平均值为上述 90、80、70、60 和 50)。我怎样才能找回main() 每个字母等级的总数?谢谢!
【问题讨论】: