从函数发出返回值
Issue returning values from function
我的程序计算每个学生的平均分。它输出数字平均值和字母等级。通过这两个函数,我可以很好地得到每个学生的字母分数,但是我不知道如何获得每个字母分数的总数。(请注意,我不允许使用结构,或数组或向量等,为这个分配:()
#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;
}
我知道问题在于第二个函数以及我如何连接这两个函数。现在,a、b、Cs、Ds、Fs的输出都是0,而不是1(假设接收到的平均值是上面提到的90、80、70、60和50)。我怎样才能在main()
中得到每个字母等级的总数?谢谢你!
我不知道你到底可以做什么,不可以做什么。
考虑到你不能使用数组和结构,你只能通过在参数中传递计数器作为引用来解决letterScore
函数的问题:
string letterScore(double& avgScore, int& countA, int& countB, int& countC, [etc...]) {
string letterscore;
if (avgScore >= 90)
{
letterscore = "A";
countA++; // here is the counter !
}
[etc...] // do the same for other blocks
和你的main()
:
int countA = countB = [etc...] = 0;
for (int i = 0; i < 5; i++) {
string letterscore = letterScore(avgScore, countA, countB, [etc...]);
}
相关文章:
- 从python中调用C++函数并获取返回值
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 程序不向函数返回值
- 如何在另一个函数中使用返回值作为参数?
- 编写以 C++ 为单位返回值的函数
- 了解在返回值之前和之后使用 EAX 的函数调用
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?
- 如何将不可移动和不可复制的函数返回值获取到数组中
- G++ 编译器是否在未使用返回值的情况下将 constexpr 函数视为常规函数?
- 为什么当你将函数的返回值乘以零时它不会短路?
- 函数的返回值类型是别名 ***或 *** 布尔值
- 如何在没有返回值的情况下使用(特征)unaryExpr 和 lambda 函数?
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 为什么这个"ctypes"包装函数的返回值是"c_long(0)"而不是&quo
- 函数不显示返回值 - C++
- 结构新手,我对如何从 void 函数中返回值并将其放入另一个函数感到困惑
- 将 void 函数更改为返回值函数
- 返回值函数中结构成员赋值的额外拷贝