C语言博客作业08

一、本周教学内容&目标

第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题

二、本周作业

问题 答案
这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9977
我在这个课程的目标是 掌握并熟练用代码解决实际问题
这个作业在哪个具体方面帮助我实现目标 重复写代码,运用多种语句,例如lf-else语句,for语句,switch语句,while语句等
参考文献 C语言程序设计I和习题实验指导书,QQ浏览器

三、本周作业

1.PTA实验作业

请在此处列出自己的排名图片

1.1 ```题目:7-1 求整数的位数及各位数字之和:对于给定的正整数N,求它的位数及其各位数字之和。

输入格式:
输入在一行中给出一个不超过10的9次方的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。```

  • 1.1.1数据处理
    数据表达:先分别定义整数、整数的位数及各位数字之和,即N,sum,figure.均为整型变量,由于题目中的N为正整数,所以再利用while语句,条件便是N!=0,最后输出。
    数据处理

include<stdio.h> /编译预处理命令/

int main( ) /定义主函数main/
{
int N,sum=0,figure; /定义三个整型变量N-正整数,sum-N的位数,figure-N的各位数字之和/

scanf("%d",&N);   /*调用scanf()函数输入正整数N*/
while(N != 0)   /*调用while()语句输入N不等于0的情况,即判断循环条件*/
{
    sum += N%10;   /*求出各个位数之和*/
    N=N/10;   /*整除后减少一位个位数,组成一个新数*/
    figure++;   /*位数加一*/
}
printf("%d %d",figure,sum);   /*输出两个函数*/

return 0;   /*结束函数调用,返回函数值0*/

}

  • 1.1.2实验代码截图

  • 1.1.3造测试数据

输入数据 输出数据 说明
323 3 8 323的位数为3,各个数字之和为8
41 2 5 41的位数为2,各个数字之和为5
4444 4 16 4444的位数为4,各个数字之和为16
8 1 8 8的位数为1,各个数字之和为8
12345 5 15 12345的位数为5,各个数字之和为15
  • 1.1.4PTA提交列表及说明
    提交列表:

    说明:1.部分正确:输出部分的位数figure和各数字之和sum顺序搞反了 2.编译错误:while里面的条件!写成了中文版的!。

1.2```题目:7-5 爬动的蠕虫 (15 分)

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

  • 1.2.1数据处理
    数据表达:先定义五个变量,分别是井口高度,上滑量,下滑量,蠕虫消耗时间,距离井底的距离,均为整型变量,再利用for语句和If-else语句输入条件,最后输出。
    数据处理

include <stdio.h> /编译预处理命令/

int main() /声明主函数/
{
int N,U,D,time,S=0; /定义变量:井口高度,上滑量,下滑量,蠕虫消耗时间,距离井底的距离/

scanf("%d %d %d",&N,&U,&D);   /*调用scanf()语句,输入三个变量*/
for(time=1; ;time++)   /*利用for语句将时间从一开始加,依次加一*/

{
if(time%2 > 0) /利用If语句判断时间除以2取的余数 与0的大小/
{
S += U; /总距离的计算/
if(S>=N) /利用if语句输入距离井底的距离大于等于井口高度的情况/
{
break;
}
}
else
{
S-=D; /距离井底总距离的计算,S=S-D/
}
}
printf("%d",time); /输出输出蠕虫爬出井的时间/

return 0;   /*结束函数调用,返回函数值0*/

}

  • 1.2.2实验代码截图

  • 1.2.3造测试数据

输入数据 输出数据 说明
10 3 2 15 2<3,蠕虫爬出井的时间为15分钟
11 4 3 15 3<4,蠕虫爬出井的时间为15分钟
12 3 1 11 1<3,蠕虫爬出井的时间为11分钟
12 3 3 无输出 3=3,不满足D<U
12 3 4 无输出 4>3,不满足D<U
13 4 2 11 2<4,蠕虫爬出井的时间为11分钟
  • 1.2.4PTA提交列表及说明

说明:1.部分正确:该题目要求所说的时间不足1分钟按1分钟计,那应该最小为1,而我以为是0,从而导致部分错误。 2.编译错误:for语句中条件规定为三个,即使没有条件也应该打一个分号,而我没有打分号,以为没有必要。

2.代码互评

2.1模板一


差异:1.该同学定义了多种变量,而我只定义了三个主要变量,即正整数N、位数figure、各个位数之和sum; 2.该同学运用的是do-while,而我是while语句,我觉得该同学的do-while语句更加严谨,先执行一次循环体,再进行N!=0的情况。 3.该同学是利用多设置的变量作为中间变量间接输出结果,而我是直接利用表达式得出结果,我的更快捷一点。

2.2模板二


差异:1.最明显的差异是该同学不仅运用了If语句,还运用了我们最近讲的while语句,而我运用的是for语句.虽然我的看起来简单,但该同学的代码更容易懂。 2.一开始我是以n=0作为for语句的条件1,而该同学首先定义的就是N=1。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 4/h 150 学会了输入输出字符 如何去定义和运用Markdown格式
第二周 12/h 300 知道定义变量和表格的制作及Markdown格式的运用 运算符怎么输入
第三周 15/h 396 学会了折线图的制作和lf-else语句的运用及多种运算符的使用 怎样才能使输入代码更加简便,有没有惯用的
第四周 13/h 350 for的循环结构 各种情况下各种变量的灵活运用
第五周 12/h 370 用代码输入生成乘方表和阶乘表 不知道该定义多少个量
第六周 16/h 400 字符型数据类型和逻辑与关系运算符 做了PTA上面的几个编程题,感觉有的题目自己看不懂,不知道如何写表达式
第七周 9/h 310 多支结构switch语句 不知道该对谁应用switch语句,题目意思转化成代码不知如何表达
第八周 15/h 410 while与for语句使用的区别及do-while的使用 解决问题没有好的逻辑思维能力

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会

老师在课程讲的内容你可能以为都听懂了,实际并没有,因为你并不会用,或者说变了一个题目你就不会用之前的方法解决,所以在这门课上,我们必须做到课前预习,课上认真,课后复习并练习,特别是反复练习,绝对不可少,这也就是我们为什么和别人本来是同一个起跑线,到后来落后的原因之一。

`

原文地址:https://www.cnblogs.com/abcd123456/p/11846315.html