如果将学生的百分制成绩分为5个等级:0-59分为不及格(E),60-69分为及格(D),70- 79分为一般(C),80-89分为良好(B),90-100分为优秀(A)。在实际中,学生的成绩在五个等级上的分布是不均匀的,假设其分布概率依次为:0.05, 0.14, 0.29, 0.36, 0.16。请采用 if...else 判断语句设计两个不同的函数实现百分制转换为五级分制,并验证。
要求:(1)判断语句的效率最高(二叉树带权路径长度最小,用这种思想编程,不是去生成二叉树);(2)判断语句的层数最小(二叉树的高度或深度最小)
int main() { cout<<"输入学生成绩"<<endl; int grade; cin >> grade; cout << "选择判断模式(0:效率最高 1:层数最小)" << endl; int a; cin >> a; switch (a) { case 0: //概率大的判断次数最少 if (grade >= 80 && grade <= 89) cout << "学生成绩为B" << endl; else { if (grade >= 70 && grade <= 79) cout << "学生成绩为C" << endl; else { if (grade >= 90) cout << "学生成绩为A" << endl; else { if (grade >= 60) cout << "学生成绩为D" << endl; else cout << "学生成绩为E" << endl; } } } break; case 1: //尽可能对分 if (grade >= 80) { if (grade >= 90) cout << "学生成绩为A" << endl; else cout << "学生成绩为B" << endl; } else { if (grade >= 70) cout << "学生成绩为C" << endl; else { if (grade >= 60) cout << "学生成绩为D" << endl; else cout << "学生成绩为E" << endl; } } break; } return 0; }