编写一个程序,将给定的百分制成绩转换为成绩等级A、B、C、D、E。90分以上为A,80--89分为B,70--79分为C,60--69分为D,60分以下为E

编写一个程序,将给定的百分制成绩转换为成绩等级A、B、C、D、E。90分以上为A,80–89分为B,70–79分为C,60–69分为D,60分以下为E

#include <stdio.h>
int main(){
    int n;
    printf("分数:");
    scanf("%d", &n);
    if(n < 0 || n >100){ //健壮性
        printf("成绩无效!\n");
        return 0;
    }
    switch(n/10){
        case 0 : case 1 : case 2 : case 3 : case 4 : case 5 :
            printf("Your score is E\n");
            break;
        case 6:
            printf("Your score is D\n");
            break;
        case 7:
            printf("Your score is C\n");
            break;
        case 8:
            printf("Your score is B\n");
            break;
        default:
            printf("Your score is A\n");
            break;
    }
    return 0;
}
哈夫曼树,也称为最优二叉树或最小带权路径长度树,是一种特殊的二叉树结构,常用于数据压缩和编码中。它通过对每个字符赋予不同的权重,形成一棵使得所有叶子节点路径之和最小的树。在Java中,如果你想要编写一个程序,将学生的百分制成绩映射到5成绩,可以使用哈夫曼树作为权重配的基础。 首先,你需要创建一个权重对应的字符数组,比如百分制对应五制的映射,如90-100对应A,80-89对应B,以此类推。然后,构建一个哈夫曼树,计算出每个等级的编码。最后,根据学生的原始数,查找其在哈夫曼树上对应的编码,这就是五制的成绩。 由于这里涉及的是编码算法,下面是一个简单的伪代码示例: ```java class HuffmanNode { int weight; char grade; HuffmanNode left, right; // 构建哈夫曼树的辅助函数 static HuffmanNode buildHuffmanTree(int[] weights) { // ... 使用优先队列等数据结构构建 } } public String convertToFives(int percentageScore) { int[] weights = { // 根据实际映射填充权重 (percentageScore >= 90 ? 1 : 0), // A 的权重 // B, C, D, E 等等级的权重... }; HuffmanNode huffmanRoot = HuffmanNode.buildHuffmanTree(weights); // 编码阶段 StringBuilder encodedGrade = new StringBuilder(); // 调用huffmanRoot的encode方法,输入百分制数,得到五制编码 encodedGrade.append(huffmanRoot.encode(percentageScore)); return "五制:" + encodedGrade.toString(); // 返回五成绩字符串 } ``` 请注意,这只是一个简化的流程概述,并未包括具体的哈夫曼树构造细节。实际操作中,需要根据给定百分制成绩范围精确地设置权重,并实现节点类和编码功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值