北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

继续C语言学习:第1课(c语言基础教程视频)

学C语言第9天,写个成绩加减小程序,结果全班80%的人卡在第一步密码验证

密码输错直接结束,很多人以为电脑坏了,其实是少写了一行循环。

今天把完整流程拆开讲,顺带把switch容易踩的坑一次说清。

第一步,先让用户输入一个长整数。

用long int,别用int,省得大数字溢出。

格式符记得写%ld,别写成%d,否则编译器会报警。

第二步,判断是不是123456。

不是就打印错误,然后return 0直接结束。

很多人在这一步卡住,因为输错一次程序就退出,体验极差。

解决办法很简单,把整段逻辑包进while死循环,只有输入4才break跳出。

第三步,密码正确后打印菜单:1查总分,2扣分,3加分,4退出。

用printf逐行输出即可,别偷懒写成一行,手机上看会换行错位。

第四步,读取用户选项。

定义int a,用scanf读入。

这里可以用if-else,也可以用switch。

新手建议先用if,逻辑更直观:if查分,else if扣分,else if加分,else ifbreak,其余输入提示无效。

第五步,把扣分加分功能补全。

总分初始设为100,扣分直接减,加分直接加,每次操作完立刻打印最新总分。

别忘记在循环末尾再打印一次菜单,否则用户不知道下一步该干嘛。

switch写法更短,但坑更多。

case后面只能写常量,不能写变量,也不能重复。

想只执行对应分支,每个case后面加break,否则会继续往下跑。

很多人把break漏写,结果输入1把四个选项全跑一遍,场面尴尬。

真实项目里,成绩系统不会把密码写死。

一般会放配置文件或数据库,程序启动时读进来。

加减分也不会直接改内存,而是写日志,防止老师误操作。

这些扩展留给你慢慢玩。

今天的小程序跑通后,把while换成while(a!

=4),再把break删掉,效果一样,代码更短。

多试几种写法,印象更深。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言