鱼C论坛

 找回密码
 立即注册
查看: 1715|回复: 3

[已解决]求助一下

[复制链接]
发表于 2023-10-17 18:04:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请编写函数,根据学生的分数确定其等级。

分数        等级
[90, 100]        A
[80, 90)        B
[70, 80)        C
[60, 70)        D
[0, 60)        E
函数原型
char ToRank(double score);
说明:参数 score 为分数(0 ~ 100),函数值为等级(A ~ E)。

裁判程序

#include <stdio.h>

char ToRank(double score);

int main()
{
    double s;
    char r;
    scanf("%lg", &s);
    r = ToRank(s);
    printf("%c\n", r);
    return 0;
}

/* 你提交的代码将被嵌在这里 */
输入格式
成绩

输出格式
等级

输入样例
87.5

输出样例
B

要求:使用 switch 语句实现,不要用if语句。
用C或者C++怎么写
最佳答案
2023-10-17 18:05:26
以下是使用 switch 语句实现的 C++ 代码:
#include <iostream>
using namespace std;

char ToRank(double score) {
    int intScore = static_cast<int>(score / 10);  // 将分数转换为整数
    char rank;

    switch (intScore) {
        case 10:
        case 9:
            rank = 'A';
            break;
        case 8:
            rank = 'B';
            break;
        case 7:
            rank = 'C';
            break;
        case 6:
            rank = 'D';
            break;
        default:
            rank = 'E';
            break;
    }

    return rank;
}

int main() {
    double s;
    char r;
    cin >> s;
    r = ToRank(s);
    cout << r << endl;
    return 0;
}

首先,我们将输入的分数转换为整数,然后使用 switch 语句根据整数分数的范围来确定等级。根据题目要求,90 到 100 分为 A 级,80 到 90 分为 B 级,以此类推。默认情况下,如果分数不在以上范围内,则为 E 级。

以上是用 C++ 编写的代码,可以直接运行。如果您使用的是 C 语言,请将  #include <iostream>  改为  #include <stdio.h> ,将  cin  改为  scanf ,将  cout  改为  printf 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-17 18:05:26 | 显示全部楼层    本楼为最佳答案   
以下是使用 switch 语句实现的 C++ 代码:
#include <iostream>
using namespace std;

char ToRank(double score) {
    int intScore = static_cast<int>(score / 10);  // 将分数转换为整数
    char rank;

    switch (intScore) {
        case 10:
        case 9:
            rank = 'A';
            break;
        case 8:
            rank = 'B';
            break;
        case 7:
            rank = 'C';
            break;
        case 6:
            rank = 'D';
            break;
        default:
            rank = 'E';
            break;
    }

    return rank;
}

int main() {
    double s;
    char r;
    cin >> s;
    r = ToRank(s);
    cout << r << endl;
    return 0;
}

首先,我们将输入的分数转换为整数,然后使用 switch 语句根据整数分数的范围来确定等级。根据题目要求,90 到 100 分为 A 级,80 到 90 分为 B 级,以此类推。默认情况下,如果分数不在以上范围内,则为 E 级。

以上是用 C++ 编写的代码,可以直接运行。如果您使用的是 C 语言,请将  #include <iostream>  改为  #include <stdio.h> ,将  cin  改为  scanf ,将  cout  改为  printf 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-17 18:05:38 | 显示全部楼层
在这个问题中,我们需要编写一个函数,该函数接受一个分数作为输入,并返回一个字符,表示该分数对应的等级。由于要求使用 switch 语句,我们可以先将分数转换为一个整数,然后使用 switch 语句来确定等级。

以下是一个使用 C 语言实现的示例:
#include <stdio.h>

char ToRank(double score) {
    int intScore = (int)score / 10; // 将分数转换为整数
    char rank;
    switch(intScore) {
        case 10:
        case 9:
            rank = 'A';
            break;
        case 8:
            rank = 'B';
            break;
        case 7:
            rank = 'C';
            break;
        case 6:
            rank = 'D';
            break;
        default:
            rank = 'E';
    }
    return rank;
}

int main() {
    double s;
    char r;
    scanf("%lg", &s);
    r = ToRank(s);
    printf("%c\
", r);
    return 0;
}

在这个代码中,我们首先将分数除以10并转换为整数。然后,我们使用 switch 语句来确定等级。注意,我们使用了 case 语句的穿透性(fall-through):如果分数是90或100,那么 intScore 就是9或10,所以等级是 'A'。同样,如果分数是80到89,那么 intScore 就是8,所以等级是 'B',以此类推。如果分数低于60,那么 intScore 就是5或更小的数,所以等级是 'E'。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-17 18:06:10 | 显示全部楼层
题目描述

请编写一个函数,根据学生的分数确定其等级。分数和等级的对应关系如下:

| 分数范围 | 等级 |
| :-: | :-: |
| [90, 100] | A |
| [80, 90) | B |
| [70, 80) | C |
| [60, 70) | D |
| [0, 60) | E |

请根据上述表格,编写名为 ToRank 的函数,其原型如下:
char ToRank(double score);
其中,参数 score 表示学生的分数,返回值为相应的等级。

输入格式

一个实数,表示学生的分数。

输出格式

一个字符,表示学生的等级。

样例输入

[/code]
87.5
[/code]

样例输出

[/code]
B
[/code]

解题思路

本题要求根据给定分数计算学生对应的等级,要求使用 switch 语句实现,注意避免使用 if 语句。

我们可以先将不同等级的分数范围用 case 语句进行分类讨论,并将对应的等级使用 return 语句输出即可。

代码如下所示:
char ToRank(double score) {    switch ((int)score / 10) {        case 10:        case 9:            return 'A';        case 8:            return 'B';        case 7:            return 'C';        case 6:            return 'D';        default:            return 'E';    }}
注意,在 switch 语句中,我们将传入的分数转换为整型,然后除以 10 后进行分类讨论。在每个 case 分支中,将对应的等级使用 return 语句输出即可。

完整代码
#include <iostream>using namespace std;char ToRank(double score) {    switch ((int)score / 10) {        case 10:        case 9:            return 'A';        case 8:            return 'B';        case 7:            return 'C';        case 6:            return 'D';        default:            return 'E';    }}int main() {    double s;    cin >> s;    cout << ToRank(s) << endl;    return 0;}
输出结果与样例相同,算法正确。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 22:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表