C语言I博客作业08
一.表格
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业08 |
我在这个课程的目标是 | 把C语言学精,熟练掌握编程技术,努力找到简单代码的写法 |
这个作业在哪个具体方面帮助我实现目标 | PTA上做题,devc++慢慢掌握调试,加强对于while,do-while的理解与应用 |
参考文献 | 百度百科,其他同学作业,《C Primer Plus》,教科书,伪代码的写法 |
二.本周作业
1.PTA实验作业
1.1
题目内容描述:jmu-c-二进制转10进制
1.1.1数据处理
- 数据表达:n,ch(变量);赋值,运算(如何来);int(整型)char(字符型)
- 数据处理:
#include<stdio.h>
int main ()
{
定义整型变量n;
定义字符变量ch,调用ch用getchar函数;
while(不按下回车键)
{
switch(ch)
{
case 字符0:n=n*2+'0'-'0';跳出;//每输入一次n,n的赋值就会变。
case 字符1:n=n*2+'1'-'0';跳出;//每输入一次n,n的赋值就会变。
default:输出结果"error input";return 0;//当不是二进制字符时,用return 0直接结束switch结构。
}
ch=getchar();//再次输入调用函数,防止死循环和运行超时
}
printf("输出n对应的十进制数");
程序结束;
}
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
11111111 | 255 | 题目样例 |
34 | error input! | 题目样例 |
101 | 5 | 是二进制数 |
122 | error input! | 不是二进制数 |
1.1.4PTA提交列表及说明
编译错误:刚开始用了字符数组,发现还是没学精,漏了很多条件;字符数组小于[8]
多种错误:有编译,答案错误;改了代码格式//多种错误都是一个错误,就只写一个了
答案错误:输出不是二进制是对的,输出二进制是错的;老老实实用另一种方法写了
部分错误:对了三个错了两个;发现漏了条件,最后又加上了ch=getachar。
1.2
题目内容描述:爬动的蠕虫
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
1.2.1数据处理
数据表达:n,U,D,S,timech(变量);赋值,运算(如何来);int(整型)
数据处理:
#include<stdio.h>
int main ()
{
定义N,U,D,s,time,0赋值给s,time;
输入N,U,D;
while(s<N寸){
s=s+U;
time++;//数学公式计算蠕虫爬上时间。
if(s≥N寸)
跳出循环;
else
s=s-D;
time++;//数学公式计算蠕虫下滑时间。
}
printf("输出蠕虫到井口总时间");
程序结束;
}
1.2.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
12 3 1 | 11 | 使用题目样例 |
10 2 1 | 17 | 使用较小两位数 |
50 4 2 | 47 | 使用较大两位数 |
1.1.4PTA提交列表及说明
答案错误:把爬上和下滑时间总和了;应该先算爬上时间再计算长度超过总长度,再判断会不会下滑。//两个都是一样的错误
2.代码互评
2.1.1 同学代码截图(王瑞华同学)
2.1.2自己代码截图
- 我们的不同之处.
- 她定义了字符函数,但是没有用getchar函数调用。
- 她用if-else语句嵌套while结构,我用while语句嵌套switch结构。
- 她用if-else语句分开讨论,相比来说比较复杂,我用switch结构可以直接得出最后结果,更加简洁。
- 她这样写可以增加代码行数,我应该可以借鉴她的代码增加代码行数。
2.2.1同学代码截图
2.2.2自己代码截图
- 这份代码比上份又有许多不同。
- 他不仅用头文件#include<string.h>装入二进制字符,还用字符数组储存50个进位,防止答案溢出。
- 他用了for循环嵌套if-else结构,我用的是while循环嵌套switch结构。
- 他的数学表达式和我不一样,用的是pow函数计算,比我用数学思维计算更加清晰,我应该向这位同学学习。
3.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
八/12/11-15/11 | 3天 | 120 | while和do-while循环语句用法和概念 | 暂时没有 |
七/5/11-8/11 | 3天 | 140 | switch语句用法 | 如果x为浮点型,y,z为整型为什么x=y/z答案不对 |
六/28/10-2/11 | 3天 | 130 | 嵌套if-else语句,格式以及如何应用 | 不太清楚Devc++怎么调试 |
五/22/10-25/10 | 3天 | 100 | 用法如何定义函数,格式以及如何应用 | 暂时没有 |
四/15/10- 18/10 | 3天 | 80 | 循环结构,流程图,数学函数 | 数学公式的表达,为什么整数除以变量有一个要用括号括起来还要乘以1.0 |
三/9/10-13/10 | 3天 | 70 | f-else,&&用法,字母%用法,数学函数 | PTA每次答案错误,都十分难找出来。不得已重打 |
3.2累计代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
- 这周学了while和do-while循环语句,一大节课彭老师没时间说太多内容,更多时间是要我们自学的
- 这周去b站大学学了字符、数组以及字符数组的用法与如何调用,不过还是写题目写不正确,可能还是不太理解,但我对于c语言理解更深了。
- 作业完成时间只能有三天,刚开始我觉得时间真的很少,慢慢写多了,就发现写的越来越迅速了。
- Devc++调试我想让别人教我一下,,自己操作还是有些乏力。
没有一个大学,是比拥有我们从未使用过的能力的大自我和人类意志与理智所创造的现实,更能包罗万象的了;在寻求真理的长河中,唯有学习,不断地学习,勤奋地学习,有创造性地学习,才能越重山跨峻岭;学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心。
-- 引用自关于学习的经典语录