这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业07 |
我在这个课程的目标是 | 学会C语言并能够快速将代码码出来 |
这个作业在哪个具体方面帮助我实现目标 | 学会用switch语句做代码题目 |
参考文献 | char ch;switch语句的结构;选择结构 switch(流程控制语句);case |
PTA实验作业
1.1 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天?
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天?
1.1.1数据处理
数据表达:用了变量 year,month,day;其中year表示年份,month表示月份,day表示天数。类型为int(整形)。
数据处理:数据中用到了if-else语句中镶嵌switch的语句,表达式中还用到了逻辑表达式(year%4==0 && year%100!=0)||(year%400 == 0)。流程结构是分支结构。
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2000/10/14 | 288 | 输出意义重要的日子 |
2023/08/06 | 218 | 非闰年的一天 |
2004/10/10 | 284 | 闰年的一天 |
1.1.4PTA提交列表及说明
1.编译错误:对于该题scanf语句不知道要用"%4d/%2d/%d"导致错误
2.编译错误:用了int整形却一直用的"%f\n"导致错误
3.编译错误:最基本的数学计算都有错误(将天数算错)
4.编译错误:并没有将switch 后面加(month),而是一直用的number
5.编译错误:开始用的number+=天数之和
6.答案正确:通过更正错误将"%d/%d/%d"改为"%4d/%2d/%d";将"%f\n"改为"%d\n";将天数更正,最后答案正确
1.2程序设计联考
自从湖南农业大学、吉首大学和怀化学院组织程序设计课程联考以后,举办联考的经验越来丰富。尤其是在使用PTA系统作为考试平台之后,联考工作得到了很多学校的认可和支持。所以,现在参与联考的学校比较多。为了便于区分考生,考生账号的第一位是学校代号。1代表Hunan Agricultural University,2代表Jishou University,3代表Huaihua University,4代表Aerospace University,5代表Ocean University。
请编写程序根据考生的账号区分考生的学校。
输入格式:
在一行中给出1个6位的正整数account。
输出格式:
在一行中输出account的学校。注意:如果不清楚学校代号是哪个学校,则输出"OtherUniversity"。
1.2.1数据处理
数据表达:用了变量 account,university;op;其中account表示考生账号,university表示学校;op定义为university;其中类型为int(整形)与double(双精度浮点型)。
数据处理:数据中用到了switch语句。流程结构是选择结构。
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
111222 | Hunan Agricultural University | 以1开头的考生账号 |
222100 | Jishou University | 以2开头的考生账号 |
335699 | Huaihua University | 以3开头的考生账号 |
1.2.4 PTA提交列表及说明
1.答案错误:将语句用定义的字符类型的变量,例如"case'1':case'2':......"
2.编译错误:未定义op,导致错误
3.编译错误:为用到scanf语句,最基本的输入语句都没有,导致错误
4.多种错误:未将op用作整形,而是用的char表示字符型的数据类型
5.部分正确:由于题目将"Other University"一直打成了"OtherUniversity",导致错误
6.答案正确:通过更正错误将"'1'..."中的"''"删除;将op定义;将scanf语句输入;将"Other University"更正,答案正确
2.代码互评
同学代码截图
自己代码截图
1.同学代码中用到了四种变量,并且每句都用到了逻辑表达式(year%4==0 && year%100!=0)||(year%400 == 0)。
2.同学中的switch是用的(month - 1),而我的代码是用的(month)
3.我的代码用到了if-else语句中镶嵌switch语句;而同学是直接用的switch语句
同学代码截图
自己代码截图
1.同学代码中用到了x,account变量,而我用到了三个变量account,university,op;我的是将university定义为op,而同学是直接将x表示,简单明了
2.同学未用到"\n",简便许多(原来还能省掉这一步)
3.学习总结
3.1 学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第五周 | 3小时 | 17行 | 初期开始学习“Hello World!" | 不知道如何开始编译 |
第六周 | 10小时 | 27行 | 提问的智慧及编译器的下载 | 编译格式问题 |
第七周 | 10小时 | 95行 | 流程结构类型及变量类型分类方法 | 代码分析不明白以及编译格式问题 |
第八周 | 13小时 | 115行 | 循环程序设计及Dev-C++编译运行等方法 | 用专业术语将代码解释出来及各种赋值运用 |
第九周 | 15小时 | 165行 | 四种流程结构及主调,被调函数,实参与形参的识别 | PTA作业中题目的编写 |
第十周 | 17小时 | 94行 | 分支结构的部分代码 | PTA作业的编写(真的好难) |
第十一周 | 14小时 | 76行 | switch语句的运用 | switch语句的灵活运用以及PTA作业的编写 |
3.2累积代码行和博客字数
3.3学习内容总结和总结
3.3.1学习内容总结
3.3.2学习体会
1.本周在课外活动比较多,在学习方面速度也很慢,导致有点主次不分,我觉得还是应该以学习为主,其它事件为辅来应对大学生活
2.在C语言学习过程中,有很多问题,例如:在PTA的作业编写中,有很多题目意思理解都有问题,看来自己的逻辑思维还有很大问题
3.在编写代码时还有很多知识点都有问题,所以告诫自己应该多看书才行,也希望自己能有所提升吧