3第二章程序练习《百分制成绩转换为字母等级成绩》

《百分制成绩转换为字母等级成绩》


注:须知这里重点练习和比较的是级联的if else if和switch case语句

问题说明:输入百分制成绩,90分以上属于A,80以上属于B,70以上属于C,60以上属于D,60以下属于E

级联的if else if

这是天然的分段函数,因此非常适合用级联的if else if,代码如下,仅仅需要注意下面问题即可

  • 大于号来判断是从大到小,用小于号来判断是从小到大 grade_100>=80也是80<=grade_100<90
#include<stdio.h>
int main()
{
	int grade_100;
	char grade_A;
	printf("请输入百分制成绩:");
	scanf("%d",&grade_100);
	if (grade_100>=90)
	{
		printf("A");
	 } else if (grade_100>=80)
	 {
		printf("B");
	 }else if (grade_100>=70)
	 {
		printf("C");
	 }else if (grade_100>=60)
	 {
		printf("D");
	 }else 
	 {
		printf("E");
	 }
	return 0;
 } 

switch case的写法

由于switch case适合在一个点处做判断,因此我们可以将问题转换为通过十位数来判断等级,即9X表示A,代码如下

#include<stdio.h>
int main()
{
	int grade_100;
	char grade_A;
	printf("请输入百分制成绩:");
	scanf("%d",&grade_100);
	switch (grade_100/10)
	{
		case 10:
		case 9:
			printf("A");
		break;
		case 8:
			printf("B");
		break;
		case 7:
			printf("C");
		break;
		case 6:
			printf("D");
		break;
		default:
			printf("E");		
	}
	return 0;
 } 

总结

  1. 单说这个程序,其实还有改进的地方,即现在还没有实现单一出口,但是现在先这样,学了字符可以再改
  2. 要牢记if else if和switch case的使用场合,其实两者可以互换,但是有适合和更适合的区别
  3. 还是要再强调一下,switch case的控制表达式必须是int 型
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我理解您的问题是关于Python百分制成绩转换和统计。根据您提供的参考代码和问题,以下是一个解决方案: 首先,您提供了两个参考代码。第一个参考代码使用了条件判断和容错判断来转换成绩等级,并有一定的错误处理。第二个参考代码也使用了条件判断,但是缺少错误处理的部分。 根据您的问题,我假设您希望将百分制成绩转换等级,并进行统计。为了实现这个目标,您可以使用一个字典来映射百分制成绩等级。然后,您可以使用循环来遍历成绩列表,将每个成绩转换等级并进行计数。最后,您可以打印出各等级的统计结果。 下面是一个示例代码: ```python scores = input("请输入一组用空格隔开的百分制成绩列表:").split() grade_count = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0} for score in scores: try: grade = int(score) if 90 <= grade <= 100: grade_count['A'] += 1 elif 80 <= grade <= 89: grade_count['B'] += 1 elif 70 <= grade <= 79: grade_count['C'] += 1 elif 60 <= grade <= 69: grade_count['D'] += 1 else: grade_count['E'] += 1 except ValueError: print("输入错误,请确保每个成绩都是0到100之间的整数") print("各等级的统计结果:") for grade, count in grade_count.items(): print(f"{grade}: {count}人") ``` 这段代码首先通过`input`函数获取用户输入的一组用空格隔开的百分制成绩列表,并使用`split`方法将其拆分为一个成绩列表。 然后,我们创建了一个字典`grade_count`来存储各等级的计数。初始时,各等级的计数都为0。 接下来,我们使用一个循环遍历成绩列表,并将每个成绩转换为整数后进行判断。如果成绩在某个范围内,我们就将对应等级的计数加1。 最后,我们使用一个循环遍历`grade_count`字典,并打印出各等级的统计结果。 请注意,这段代码对输入进行了简单的错误处理,如果输入的成绩无法转换为整数,则会提示输入错误。 希望这个答案对您有帮助!如果您还有任何问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python练习题01](https://blog.csdn.net/weixin_44265747/article/details/128625723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python:成绩分类](https://blog.csdn.net/qq_45801904/article/details/123643538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值