C语言I博客作业08

☆樱花仙子☆ 提交于 2019-12-04 13:50:38
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业08
我在这个课程的目标是 熟练使用C语言来编程
这个作业在那个具体方面帮助我实现目标 熟悉使用while和do-while结构解决问题
参考文献 百度文库.百度文库

1.PTA实验作业

1.1 题目名1

一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

输入格式:

输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
输出格式:
在一行中输出蠕虫爬出井的时间,以分钟为单位。
输入样例:
12 3 1
输出样例:
11

1.2.1 数据处理

数据表达:我定义了整形变量N, U, D,time,N为井的深度,U为蠕虫爬的长度,D为蠕虫下滑的长度,time为蠕虫所爬行的时间。

伪代码

include<stdio.h>

int main()
{
定义了整形变量N(井的深度)U(蠕虫爬的长度),D(蠕虫下滑的长度),time(蠕虫爬的时间)
scanf("%d%d%d", &N, &U, &D);
while (井的深度> 0)
{
if (井的深度 > 蠕虫爬的长度) {
time += 2;
}
else
{
time += 1;
}
if (井的深度 <= 蠕虫爬的长度) {
N = N - U;
}
else
{
N = N - U + D;
}
}
printf("%d", time);时间按照十进制化为整形输出蠕虫花的时间
return 0;
}

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
15 4 2 13 井深为15寸,蠕虫每分钟爬行4寸,休息时下降2寸,则需要13分钟才能爬上去
18 4 2 15 井深为18寸,蠕虫每分钟爬行4寸,休息时下降2寸,则需要15分钟才能爬上去
20 8 2 5 井深为20寸,蠕虫每分钟爬行8寸,休息时下降2寸,则需要5分钟才能爬上去

1.2.4 PTA提交列表及说明

提交列表说明
编译错误:没有意识到蠕虫的头部到了井的就不要在休息了

2.2题目名2

输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
输入样例1:
11111111
输出样例1:
255
输入样例2:
34
输出样例2:
error input!

1.2.1 数据处理

数据表达:定义了字符型变量ch,整形变量a.

include<stdio.h>

int main()
{
定义了字符型变量;
定义了整形变量a等于零;
while (输入一个字符给ch, 获得的字符不是'\n'(回车符))
if ((ch - '0') == 1 || (ch - '0') == 0)(判断二进制字符)
a = a * 2 + (ch - '0');
else
{
printf("error input!");
return 0;
}
printf("%d", a);化为十进制整形输出a
return 0;
}

1.2.2 实验代码截图

(3)造测试数据

输入数据 输出数据 说明
101001010 330 二进制101001010对应十进制中0
2222222 error input 二进制2222222不是二进制字符
123456 error input 123456不是二进制字符

1.1.4 PTA提交列表及说明


部分正确:没有输出非二进制字符,所以导致答案部分正确。

2.代码互评

同学代码截图

自己代码截图


1.他比我多定义一个sum,是用来计算井底到蠕虫的距离的,而我则是直接计算蠕虫到井的顶部的距离。
2我计算时间是蠕虫爬的时间和下滑的时间,而他是计算蠕虫爬的时间。

同学代码截图

自己代码截图


1.我用的是while语句和if-else语句,而他用的则是switch语句。
2.他的switch语句用的表达式分别为x=2x+0,x=2x+1,而我则是用if ((ch - '0') == 1 || (ch - '0') == 0),而且我是用if-else语句进行判断二进制的,而他则是用switch语句判断是否为二进制。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第六周 8小时 220行 如何用 MinGW-w64 来编译C程序
第七周 16小时 378行 运用if,else语句 不太熟练if-else语句
第八周 20小时 341行 运用for循环语句
第九周 21小时 345行 学习了如何使用自定义函数 不太熟练
第十周 23小时 425行 熟悉并掌握多分支结构、字符型数据类型和逻辑运算符结构 各个运算符的意思还不太理解
第十一周 20小时 456行 熟悉并掌握分支结构switch语句
第十二周 25小时 430行 学会使用while和do-while结构解决问题

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会
我们这周学习的是while语句和do-while语句,这是继for循环语句后学习到的2种语句,for循环语句是有循环次数确定的,while循环语句是用在不确定次数但是带有明确的循环终止条件,而do-while循环语句则是至少要执行一次。这是这周我的理解,使我对这三种语句的使用有了更清晰的认识,还有对字符的使用也熟练了很多,继续加油!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!