545|7

7211

帖子

11

TA的资源

版主

楼主
 

关于一个成绩分类的C语言实现的两种方式 [复制链接]

 

【前言】

今天在B站上看到小美老师的C语言关于成绩分类的实现方式,有两种,一种是if语句,另一种是swicth实现:

【题目】

  跟着老师学习,使用两种方式来实现:

  • #include <stdio.h>
  • #include <string.h>
  • #include <stdlib.h>
  • int main(int argc, char *argv[]) {
  • if (argc!= 2) {
  • printf("Usage: %s <input_number>\n", argv[0]);
  • return 1;
  • }
  • //获取输入
  • int num = atoi(argv[1]);
  • printf("input:%d\n", num);
  • int score = num/10;
  • if(score>10 || score<0) {
  • printf("Input number is too large.\n");
  • return 1;
  • };
  • //用if语句来分为ABCDE
  • if(score>=9) {
  • printf("Your grade is A.\n");
  • }
  • else if(score>=8) {
  • printf("Your grade is B.\n");
  • }
  • else if(score>=7) {
  • printf("Your grade is C.\n");
  • }
  • else if(score>=6) {
  • printf("Your grade is D.\n");
  • }
  • else {
  • printf("Your grade is E.\n");
  • }
  • switch(score) {
  • case 10:
  • printf("Your grade is A.\n");
  • break;
  • case 9:
  • printf("Your grade is A.\n");
  • break;
  • case 8:
  • printf("Your grade is B.\n");
  • break;
  • case 7:
  • printf("Your grade is C.\n");
  • break;
  • case 6:
  • printf("Your grade is D.\n");
  • break;
  • default:
  • printf("Your grade is E.\n");
  • }
  • return 0;
  • }

实现效果:

  • PS D:\PL2303G_GPIOTest_v1003\PL2303G_GPIOTest_v1003_20230921\DLL> .\a.exe 91
  • input:91
  • Your grade is A.
  • Your grade is A.
  • PS D:\PL2303G_GPIOTest_v1003\PL2303G_GPIOTest_v1003_20230921\DLL> .\a.exe 88
  • input:88
  • Your grade is B.
  • Your grade is B.
  • PS D:\PL2303G_GPIOTest_v1003\PL2303G_GPIOTest_v1003_20230921\DLL> .\a.exe 45
  • input:45
  • Your grade is E.
  • Your grade is E.
  • PS D:\PL2303G_GPIOTest_v1003\PL2303G_GPIOTest_v1003_20230921\DLL>

大家感觉使用if与switch,哪种方式更好呢?

查看本帖全部内容,请登录或者注册

最新回复

如果我编写,我会使用查表法的方式来实现   详情 回复 发表于 2025-2-23 13:08
点赞 关注
 
 

回复
举报

429

帖子

10

TA的资源

纯净的硅(初级)

沙发
 
python ,没有switch。。。总有它的道理

点评

有些时候switch效率会比if高,不过python不太在意效率  详情 回复 发表于 2025-2-17 21:45
 
 
 

回复

7547

帖子

2

TA的资源

版主

板凳
 
python ,没有switch。。。总有它的道理

有些时候switch效率会比if高,不过python不太在意效率
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

4
 
萝卜白菜,各有所爱
 
 
 

回复

734

帖子

0

TA的资源

纯净的硅(高级)

5
 

我一般只有在对枚举值作判断的时候用switch,其它的判断都用if

 
 
 

回复

1707

帖子

0

TA的资源

五彩晶圆(初级)

6
 

if语句逻辑看起来很清晰,可能比较容易看懂

点评

但是if有个缺点就是结构需要从头写到尾,不能乱了,但是switch就不需要分次序,可以先7,再8,在后期调试会好很多,在很多有预测的CPU中,命中比较快。  详情 回复 发表于 2025-2-19 20:28
 
 
 

回复

7211

帖子

11

TA的资源

版主

7
 
se7ens 发表于 2025-2-18 18:00 if语句逻辑看起来很清晰,可能比较容易看懂

但是if有个缺点就是结构需要从头写到尾,不能乱了,但是switch就不需要分次序,可以先7,再8,在后期调试会好很多,在很多有预测的CPU中,命中比较快。

 
 
 

回复

756

帖子

0

TA的资源

纯净的硅(高级)

8
 

如果我编写,我会使用查表法的方式来实现

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 11

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表