输入百分制成绩,并把它转换成五级分制,并显示转换结果。要求用switch语句编程。转换公式为: 想一想,若用if语句进行成绩判断,本程序应该如何改写?请你试一试。

输入百分制成绩,并把它转换成五级分制,并显示转换结果。要求用switch语句编程。转换公式为:

img

想一想,若用if语句进行成绩判断,本程序应该如何改写?请你试一试。

if...else版本

#include <iostream>
using namespace std;
int main()
{
    int score;
    char grade;
    cout<<"请输入成绩:";
    cin>>score;
    if(score >= 90)
        grade = 'A';
    else if(score >= 80)
        grade = 'B';
    else if(score >= 70)
        grade = 'C';
    else if(score >= 60)
        grade = 'D';
    else
        grade = 'E';
    cout<<"您成绩等级为:"<<grade<<endl;
   
    return 0;
}

switch版本

#include <iostream>
using namespace std;
int main()
{
    int score;
    char grade;
    cout<<"请输入成绩:";
    cin>>score;
    score /=10;
    switch(score)
    {
        case 10:
        case 9:
            grade = 'A';
        break;
        case 8:
            grade = 'B';
            break;
        case 7:
            grade = 'C';
            break;
        case 6:
            grade = 'D';
            break;
        default:
            grade = 'E';
            break;
      }
    cout<<"您成绩等级为:"<<grade<<endl;
   
    return 0;
}
 

使用switch语句实现的C++程序如下:

#include <iostream>
using namespace std;
int main()
{
    int score;
    cout << "请输入百分制成绩:";
    cin >> score;
    int level = score / 10;  // 计算成绩所在的区间
    switch (level) {
    case 10:
    case 9:
        cout << "优秀" << endl;
        break;
    case 8:
        cout << "良好" << endl;
        break;
    case 7:
        cout << "中等" << endl;
        break;
    case 6:
        cout << "及格" << endl;
        break;
    default:
        cout << "不及格" << endl;
        break;
    }
    return 0;
}

程序首先通过cin输入百分制成绩,并计算成绩所在的区间。然后使用switch语句根据成绩所在的区间输出对应的五级分制等级。其中,case 10和case 9合并表示成绩在90分以上,default表示成绩在60分以下。
使用if语句实现的C++程序如下:

#include <iostream>
using namespace std;
int main()
{
    int score;
    cout << "请输入百分制成绩:";
    cin >> score;
    if (score >= 90) {
        cout << "优秀" << endl;
    }
    else if (score >= 80) {
        cout << "良好" << endl;
    }
    else if (score >= 70) {
        cout << "中等" << endl;
    }
    else if (score >= 60) {
        cout << "及格" << endl;
    }
    else {
        cout << "不及格" << endl;
    }
    return 0;
}

程序使用if语句实现了与switch语句相同的逻辑。其中,else if结构用于判断成绩所在的区间,并输出对应的五级分制等级。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^