C语言I博客作业08
这个作业属于那个课程 | C语言程序设计 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9978 |
我在这个课程的目标是 | 熟悉并掌握好C语言及其它的专业性知识 |
这个作业在那个具体方面帮助我实现目标 | 完成PTA作业,熟悉使用while和do-while结构解决问题 |
参考文献 | 集美大学林丽老师 |
一,PTA实验作业
1,求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和
用Int整型定义N,m,sum,num
赋值sum=0
while语句(循环条件){
num=N%10;
sum+=num;
N/=10;
m++;
}
输出m和sum
1,数据处理
变量 | 变量来源 | 变量类型 |
---|---|---|
N,m,sum,num | 自定义 | int整数型 |
- 采用了while语句。
- 运用了num=N%10; sum+=num;N/=10;m++;
2,造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
43256 | 5 20 | 随意数据 |
6778 | 4 28 | 随意数据 |
807325 | 6 25 | 随意数据 |
3,PTA提交列表及说明
- 部分正确:本来是写了更多的参数的。在while语句的()里是写的i<=pow(10,9),在此情况下m输出一直为10,发现无法解决求位数的问题。后来发现可以使用更少的参数,直接把N/=10移到 sum+=num后更加简洁且方便。
- 运行超时:忘记写N/=10了
**2,爬动的蠕虫 **
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
用int整型定义N,U,D
赋值时间t=0,爬行距离h=0
while语句(循环条件){
t++;//向上爬行一分钟
h += U;//爬行距离累计和
if(h>=N){ //如果爬行的距离不小于井深N
printf("%d", t);//输出时间
break;
}
t++;//休息一分钟
h -= D;//减去休息所下滑的距离总和
}
结束程序
1,数据处理
变量 | 变量来源 | 变量类型 |
---|---|---|
N,U,D | 题目定义 | int整型 |
t,h | 自定义 | int整型 |
- 采用了while语句和if语句
2,造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
14 5 1 | 7 | 随意选取 |
24 6 4 | 11 | 随意选取 |
34 6 4 | 11 | 随意选取 |
3,PTA提交列表及说明
- 答案正确;有查询问题。当虫还未爬出时,记录上爬时间t++,h+=U虫上爬的距离和;如果上爬距离不小于N,输出时间t;然后记录休息的时间t++,h-=D虫减去下滑的距离,为虫移动的总距离。
二,代码互评
- 我们的思路大致相同,只是有些循环的顺序不太一样
- 我直接就在while语句里面把所要算的都写清楚了,她在printf语句里面还写了个公式
- 两者条理都很清晰,易懂
三,学习总结
1,学习进度条
周/日期 | 这周所花的学习时间 | 代码行 | 学到的知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周 | 三天 | 110 | if-else语句 格式化输入函数scanf() | 使用scanf()的返回值 格式空格 |
第四周 | 三天 | 147 | 循环结构,流程图,数学函数 | 为什么在main()里加入void |
第五周 | 两天 | 75 | 对函数的定义和调用有初步的认识,能模仿编程 | 为什么同样的答案在Dev-C++里是对的而在PTA里的就是错的 |
第六周 | 8小时 | 180 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 同样的答案在Dev-C++里是对的而在PTA里的就是错的,Visual Studio不会用 |
第七周 | 8小时 | 104 | 熟悉多分支结构switch语句的使用 | 不能流畅的完成PTA |
第八周 | 8小时 | 90 | 熟悉使用while和do-while结构解决问题 | while(1)里面数字代表什么 |
2,累计代码行数和博客字数
三,学习内容总结和体会
1,学习内容总结
2,学习体会
需要好好复习课本了,把以前做过了的PTA拿出来再做一遍,巩固知识。搞一个笔记本,把所有知识都系统性的记录一便。