C语言I博客作业08

问题 回答
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业08
我在这个课程的目标是 完全独立编写一个小游戏程序,并能正常运行。
这个作业在那个具体方面帮助我实现目标 帮助我熟悉使用while和do-while结构解决问题
参考文献 《C语言程序设计》 《C Primer Plus》

1.PTA实验作业

1.1求整数的位数及各位数字之和

对于给定的正整数N,求它的位数及其各位数字之和。

1.1.1数据处理

数据表达:用int定义变量n,i,sum。类型为整型变量。
数据处理:数据用到关系表达式,赋值表达式,条件表达式和while循环结构。

定义整型变量 输入的整数n,循环次数i,整数各位数的和sum,并且赋值为零。
scanf("%d",&n);
while循环语句(n>0)
{
sum的关系表达式 sum=sum+n%10;
n=n/10;
i++; (循环此语句,以此计算n的各数及和)
}
printf输出 循环次数i,n各位数和sum;
返回零;

1.1.2实验代码截图

1.1.3 造测试数据

输入 输出 说明
52 2 7 两位数
123 3 6 三位数
8868 4 30 四位数

1.1.4 PTA提交列表及说明

1.答案错误:忘记给sum赋值为零,导致答案错误,于是给sum赋值为零。
2.答案错误:while语句条件里n应该大于零。

1.2 爬动的蠕虫

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

1.2.1 数据处理

数据表达:用int定义变量N,U,D,t,s,类型为整型变量。
数据处理:用了关系表达式,赋值表达式,条件表达式,while循环结构和if-else分支结构。

定义变量N,U,D,时间t,蠕虫爬的长度s;
scanf函数输出;
while循环语句(真)
{
s表达式;
t表达式;
if(当蠕虫爬的路程小于井长)
{
s表达式;
t表达式;
}
else
break;跳出当前结构
}
printf输出;
返回零;

1.2.2 实验代码截图

1.2.3 造测试数据

输入 输出 说明
34 5 1 17 D<U
23 4 4 无结果 D=U
33 2 3 无结果 D>U

1.2.4 PTA提交列表及说明

1.运行超时:未用break语句跳出当前循环,导致运行超时。
2.答案错误:一开始将题目简单的认为可以直接算作蠕虫两分钟爬(U-D)米,但是运行时候发现时间多了,原来蠕虫在我所计算出的时间之前就爬上了顶。后来就将程序改成一分钟一分钟计算的。然后重新编写。

2.代码互评

同学代码截图


自己代码截图

1.同学一的代码比我的看起来更加规范,每一部分都很清晰的呈现出来,让人更易读懂。
2.两位同学都将变量分成两部分定义,而我比较喜欢一次定义完。
3.同学在写关系表达式时喜欢用简单一点的比如a++,a+=b.....等等诸如此类的,而我仍然使用数学思维写成a=a+1,a=a+b。我觉得两者皆可吧,不一定非要用哪一种。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第三周10.9-10.12 两天 188 对代码数据的处理了解,比如类型结构等 什么时候用int,double声明变量,逻辑运算符的运用等
第四周10.16-10.18 一天半 190 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 循环体中的关系表达式的正确运用
第五周10.23-10.26 两天 226 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 具体如何在题目中定义函数,参数又应放在哪里才是正确位置
第六周10.30-11.2 三天 348 分支结构应用,逻辑运算符的使用 在使用if-else语句时{}的位置与格式,语句一多就搞不清楚了
第七周11.5-11.8 两天半 300 switch语句作为分支结构应用 伪代码到底该如何编写,写的详细和正规代码没什么两样,写的粗略思路又不够清晰
第八周11.13-11.15 两天半 300 使用while和do-while结构解决问题 对于不同情况下for循环语句和while循环语句如何选择使答题更简便

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

  • 学习内容越来越多,难度越来越大,比起之前学得略显吃力,每个知识点都要花更多的时间精力去钻研。
  • 学习了多种结构后将一些题目的答题过程简化了,让人更让容易编写出答案,更容易理解过程。
  • 关于本周知识点:
    whlie 先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
    do-while循环与while循环的不同在于:do-while会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”.
posted on 2019-11-15 17:16  oyxyoyxyo  阅读(172)  评论(1编辑  收藏  举报