-1

所以我无法弄清楚我的问题是什么输出需要类似于“结果1:55.00 P级”

我是初学者,所以在这段艰难时期的任何帮助将不胜感激,谢谢

for(int a=0;a< 10;a++)
{
cout << "Result " << a+1 << " " << score[a] << " " << determine_grade(score[a]) <<  "\n";
}
system("Pause");


}



char determine_grade(double a)
{
char grade;
switch(grade)
{
    case(1):
        if (a >100)
            cout << "Invalid Input!";
    case(2):
        if (a >= 90)
            grade = 'A';
        break;
    case(3):
        if (a >= 70)
            grade = 'B';
        break;
    case(4):
        if (a >= 60)
            grade = 'C';
        break;
    case(5):
        if (a >= 50)
            grade = 'P';
        break;
    default: grade = 'U';
}

cout << grade;
}
4

2 回答 2

3

首先,你使用switch不正确:grade不是一个有效的选择器,它甚至没有被初始化。仅使用 重写块if-else

第二:在函数中,你应该return grade;,不是cout它。这就是重点:一个函数计算一些值,调用函数决定如何处理它(打印它或存储它或其他东西)。

于 2013-11-10T08:39:35.273 回答
2

尝试这个

char determine_grade(double a)
{
    if (a > 100)
    {
        cout << "Invalid Input!";
        return '?';
    }
    if (a >= 90)
       return 'A';
    if (a >= 70)
       return 'B';
    ...
    return 'U';
}

不知道为什么要使用 switch 语句。

编写代码的方式determine_grade是返回一个值,然后将其打印在调用代码中(即 for 循环)。所以使用returnin determine_gradenot cout

于 2013-11-10T08:41:53.810 回答