这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业08 |
我在这个课程的目标是 | 熟悉使用while和do-while结构解决问题 |
这个作业在那个具体方面帮助我实现目标 | 在作业中不断总结错误,更好地掌握了C语言 |
参考文献 | C语言 |
1.PTA实验作业
1.1题目1:7-3 jmu-c-二进制转10进制
题目内容描述:输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
1.1.1数据处理
数据表达
定义字符ch,整形变量sum存放结果,整形变量flag用于辅助判断。
数据处理
- 使用了while循环语句,while(ch!='\n)回车作为结束标志。
- 使用了switch语句,switch(ch)当输入新二进制字符十进制数*2+字符实现二进制转十进制。
- default ch='\n'当输入非二进制输出“error input!”,并结束循环。
if(flag==0)printf(“%d”,sum)输入非法字符时不输出sum。
伪代码
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 | 1 | 二进制中1对应十进制中1 |
11111111 | 255 | 二进制中11111111对应十进制中255 |
34 | error input | 34是非二进制字符 |
1.1.4 PTA提交列表及说明
- 编译错误:第十行“%c”打成‘%c’,未注意引用号,
- 部分正确:第二十行中"error input!\n"打成了"error input!",\n未打
- 编译错误:第二十八行 printf("%d",sum);未打sum。
1.2 题目2:7-5 爬动的蠕虫
题目内容描述:一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)
1.2.1数据处理
- 数据表达:定义了整形变量N,U,D,L,time。N代表水井深度,U代表蠕虫每分钟向上高度,D表示蠕虫每分钟又下滑高度 ,L为虫子消耗的时间 。
数据处理:用了while语句进行循环,if语句进行条件判定。用了表达式 L=L+U表示蠕虫爬的高度。用了表达式 L>=N,break;L=L-D;time++;表示蠕虫爬出的时间。
伪代码
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
15 5 1 | 7 | 深15寸的水井,每分钟上爬5寸,每分钟下滑1寸,爬到井顶要7分钟 |
20 3 1 | 19 | 深20寸的水井,每分钟上爬3寸,每分钟下滑1寸,爬到井顶要19分钟 |
50 40 30 | 3 | 深50寸的水井,每分钟上爬540寸,每分钟下滑30寸,爬到井顶要3分钟 |
1.2.4 PTA提交列表及说明
- 编译错误:第7行将time=L=0打成了time=0
- 编译错误:第10行将time++;打成L++。
- 编译错误:第17行将printf("%d",time)打成printf("%d",L)。
2.代码互评
- 同学代码
自己代码
比较
- 1.他定义了一个变量x,我定义了变量sum,并以存放十进制数字flag辅助判断。
- 2.while循环语句进行条件的表达式是一样的都是(ch!='\n')。
3.他case'0',case'1'的表达式分开表示,分别为x=2x+0,x=2x+1,我的表达式只有一条为sum=sum*2+ch-'0'。
同学代码
自己代码
比较
- 1.我定义了一变量N,U,D,L,time,而他定义了变量n,u,d,t,path,并给t,path赋了初始值。
- 2.他运用了do-while语句和if-else语句,而我用了while语句。
- 3.因为语句不同,所以对计算时间的消耗的表达式也不同,我分L
=N两种情况讨论,而他分了当t%2!=0的情况和除t%2!=0之外的情况。 - 4.我认为两个代码各有优点,是两种不同的思路,表达式完全不同,有值得借鉴的地方。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 20小时 | 150行 | 无 | 无 |
第七周 | 24小时 | 150行 | 运用if,else语句 | 对符号的意思不太理解 |
第八周 | 18小时 | 200行 | 运用for循环语句 | 无 |
第九周/10.25 | 8小时 | 200行 | 学习了自定义函数 | 符号容易弄混 |
第十周/11.1 | 26小时 | 250行 | 熟悉并掌握了多分支结构 | 各个运算符的意思还不太理解 |
第十一周/11.8 | 24小时 | 300行 | 熟悉并掌握分支结构switch语句 | 对空格的使用还比较疑惑 |
第十二周/11.15 | 18小时 | 380行 | 学会使用while和do-while结构解决问题 | 无 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 本周熟悉并掌握了while和do-while结构语句,其实在之前作业里就有用到,这次是加以巩固。
- 同时也清楚了for语句和while语句的区别,对C语言的认识又有了更深层次的了解。对字符的使用也更得心应手了。