一、表格
1.1 题目名1
输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
输入样例1:
11111111
输出样例1:
255
输入样例2:
34
输出样例2:
error input!
1.1.1 数据处理
数据表达:字符型变量char(n)、整型变量int(sum),sum的初始值赋为0,n用于接收输入的值。
数据处理:
定义变量n放字符,sum用来放输出的十进制的数
输入字符
while(n!='\n')
首先判断输入是否是 回车,不是就进入循环
if(n=='\n')
break;
如果输入是 回车,就跳出
if(n!='1'&&n!='0')
printf("error input!");
如果输入的不是二进制就 输出错误
else
sum=sum*2+n-'0';
输入的是二进制,就计算其对应的十进制
输出十进制
1.1.2 实验代码截图
1.1.3 造测试数据
输入 |
输出 |
说明 |
11111111 |
255 |
验证题目数据 |
34 |
error input! |
验证题目数据 |
10 |
2 |
简单的二进制 |
1.1.4 PTA提交列表及说明
- 部分正确: 输入值不是二进制字符时答案是对的,但是二进制答案就错了。我只在while上边有一个输入,while语句中最下边应该再有一个输入语句。
1.2 题目名2
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
输入格式:
输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
输出格式:
在一行中输出蠕虫爬出井的时间,以分钟为单位。
输入样例:
12 3 1
输出样例:
11
1.2.1 数据处理
数据表达:整型变量int(N,U,D,t),N,U,D是输入的值,t的初始值赋为0.
数据处理:
定义N,U,D,t=0分别用来放需要爬的高度、上爬的高度、下滑的高度、和完成所用时间,
输入需要爬的的高度、上爬的高度、下滑的高度
while(N>0)
判断需要爬的高度是否大于零,大于零则进入循环
if(N>U)
t=t+2;
如果要爬的高度比一次上爬的高度大,则一次时间加两分钟
else
t++;
否则加一分钟
if(N>U)
N=N-U+D;
如果要爬的高度比一次上爬的高度大,则计算还要爬的高度,一定要加上下滑的高度
else
N=N-U;
否则直接计算
输出时间
1.2.2 实验代码截图
1.2.3 造测试数据
输入 |
输出 |
说明 |
12 3 1 |
11 |
验证题目数据 |
25 5 2 |
15 |
随机值 |
45 8 3 |
17 |
随机值 |
1.2.4 PTA提交列表及说明
- 编译错误:换了while语句,没有再用数学公式,把N当成虫子还需要爬的距离来循环运算。
- 部分正确:这也只是改进了数学公式,依然有一个测试点是错的。
- 部分正确:只使用了if-else结构和简单的数学公式算的,没有考虑到复杂的情况。
2. 代码互评
自己代码①
同学代码①
评论:
- 这道题我们的思路是一样的,但是方法有些不同,有两点不同的。
- 第一点不同是她比我多设置了一个变量h,作为还需要爬的高度。而我是直接把N当成了要爬的高度。
- 第二点不同是关于if-else的使用,她用了一个if-else把时间和剩下的高度一起表示。而我是用了两个if-else分别表示时间和距离。
- 感觉同学的代码会更好一些,毕竟只用了一个if-else,两个变量同时计算。
自己代码②
同学代码②
评论:
- 这两份代码长度不太一样,我的较短她的较长。但我觉得该同学的代码比我的要好一些。
- 该同学使用了三个if-else语句比我多一个,他先是设置了x=1的情况作为第一种输出,在最后进行判断输出。而我是直接在前面就输出了。
- 以上两种不同的输出导致了输出接口不一样,我有两个输出接口,同学只有一个。单个输出接口比较好,不容易出错。
3. 学习总结
3.1 学习进度条
周/日期 |
这周所花的时间 |
代码行 |
学到的知识点简介 |
目前比较困惑的问题 |
1/9-21 |
2天 |
30 |
初步接触编程,学习编译Hello,World! |
无 |
2/9-30 |
2天 |
20 |
学习了浮点型变量,及温度转换 |
无 |
3/9-15 |
3天 |
76 |
使用分段函数了解到if-else语句以及数据类型 |
对于定义数值还是不太清楚 |
4/10-16 |
3天 |
100 |
for语句 |
for循环进行中不清楚循环的细节 |
5/10-24 |
3 天 |
155 |
学习到了自定义函数 |
自定义函数的具体定义过程,实参形参有些迷惑 |
6/11-1 |
3天 |
250 |
学习使用if-else与for语句的嵌套,初步了解了字符型变量 |
对于字符型变量不是很懂,不明白其作用 |
7/11-7 |
2天 |
200 |
这周学习了新的分支结构switch结构,这也适用于选择的情况,其作用类似于if-else。 |
switch后面的变量表达式和case后的常量表达式弄不清。 |
8/11-15 |
3天 |
150 |
学习了新的循环结构while语句和do-while语句,和for语句有不一样的地方,但其作用是一样的,他们循环的条件不一样。 |
不能熟练运用while语句去解决实际问题 |
3.2 累计代码行和博客字数
3.3 学习内容总结
3.4 学习体会
- 这周学习了循环结构while和do-while语句,这个循环语句和for循环语句作用是一样的。但是他们的循环的条不一样,for需要有循环次数,while只要有循环终止条件即可。do-while是先运算一次,再进行判断是否执行。
- 这周知识感觉理解了,但是一做题就感觉不会用,所以这也可能是掌握的不是很彻底。在做PTA时感觉有些题挺难的,具体不知道怎末判断循环条件,也有不理解题意的原因。
- 随着学习的知识越来越多,现在感觉有些力不从心了。要调整好自己,再多刷些题来弥补自己的不足。