C语言I博客作业06
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11556 |
我在这个课程的目标是 | 熟练switch的使用,找到自己与同学的差距 |
这个作业在那个具体方面帮助我实现目标 | |
参考文献 | C语言程序设计(3)、C primer plus |
学号 | <20208956> |
1.PTA实验作业(20分/题)
请再此处列出自己的排名图片。
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名1 符号函数
题目内容描述
其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。
1.1.1数据处理
数据表达:自定义函数sign(n)
数据处理:使用if语句,判断三种情况,分别返回对应的值。
1.1.2实验代码截图
1.1.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
10 | sign(10) = 1 | >0 |
0 | sign(0) = 0 | =0 |
-1 | sign(-1) = -1 | x<0 |
-2 | sign(-2) =-1 | x<0 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
提交列表说明:
1.部分正确:一开始的代码是在if语句里的内容是sign(x)= 0、sign(x)= 1、sign(x)= -1.然后return sign(x)。它显示的就是答案错误。
2.因为return 返回的值就是这个函数所得到的结果,所以可以在每个if后返回值。
1.2 题目2 计算天数
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
1.2.1 数据处理
数据表达:定义year,month,day,i都为整型
数据处理:使用了if-else语句、逻辑运算符、switch语句
用if((year%4==0&&year%100!=0)||(year%400==0))判断是否为闰年
接着使用switch语句,case语句计算天数。
1.2.2 实验代码截图
1.2.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
2009/03/02 | 61 | 非闰年 |
2000/03/02 | 62 | 闰年 |
2000/05/04 | 125 | 闰年 |
2001/05/04 | 124 | 非润年 |
1.2.4 PTA提交列表及说明
1.没有弄清各月份的天数,在第八月之后将天数弄错了,导致七月之后的天数不对。
2.case后表达式中出现了+day,出现了变量,编译错误。
3.将case中的表达式改为i=x(天数),在switch结束后进行i+=x;算出天数。
2.代码互评(5分)
同学代码截图
1
2
自己代码截图
1.第一份代码使用字符型变量,用到了getchar()函数,if-else结构
2.第二份代码与第一份基本一样,但是他在定义变量的时候用了xyz...使输出的时候变简单了很多。
3.用了数组解题,把问题复杂了。不过这个思路值得学习。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 18 | 220 | printf,scanf的使用,以及int类型 | |
第九周 | 22 | 231 | if语句分支结构、调用数学函数 | |
第十周: | 25 | 255 | for、while、do...while语句、字符型数据的使用 | switch语句多分支结构、break语句和continue语句 |
第十一周 | 28 | 600左右 | switch语句,逻辑运算符,数组,自定义函数 | 多个循环结构的嵌套使用容易出错 |
第十二周 | 27 | 680左右 | 无新的知识点 | 排序问题 |
第十三周 | 25 | 400左右 | 巩固switch语句、const限定符、short int、long int、long long int、unsigned整数类型 | 无 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
if+else+和+switch+case+这两种条件语句都是用来判断执行功能的,若条件分支是多个而且条件的值是整数或是一个字符值时就选switch而不选if。因为如果条件分支太多时要用if语句,这样一定会出现if的嵌套,如果if的嵌套越多时程序就会增大,这样运行效率就在降底。而switch就不同,它只要比较一次就可以找出条件的结果比起嵌套if它的效率就大大的提高了很多。switch也有约束条件,就是条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时通常使用if语句。