C语言I博客作业08

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 作业链接
我在这个课程的目标是 学会并掌握C语言基本知识,能够相关C语言的各种代码
这个作业在那个具体方面帮助我实现目标 学会使用循环结构while和do-while结构
参考文献 C语言程序设计(第3版)、百度、360浏览器

1.PTA实验作业(20分/题)

1.1 7-1 求整数的位数及各位数字之和 (15 分)

题目内容描述:对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过10​的9次方​​的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。

1.1.1数据处理

数据表达: 用了n、i、count、sum这四个变量,其中i和count定义初始值为0,你通过scanf()函数来赋值,sum用来接收n%10的余数,都是整型变量;
数据处理:Beign(算法开始)
        int n,i=0,count=0,sum;
        输入n值
        do{
        sum=n%10;  //sum接收n%10的余数
        i++;  //i每次循环累加1
        count=count+sum;  //count每次循环加上sum的值
        n/10;  //n除以10
        }while(n!=0)//当n=0时循环结束
        输出i和count的值
        End(算法结束)

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
321 3 6 使用题目所给数据
32100 5 6 使用较大数据
10 2 1 使用较小数据
99999 5 9 随机数值

1.1.4 PTA提交列表及说明

提交列表说明:
    1.答案错误:我用了if语句来判断n值是否超过10的9次方,结果答案错误,然后将其删掉;
    2.部分正确:count的初始值没有定义初始值0;
    3.答案正确:通过修正答案正确;

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 数据处理

数据表达:运用了N,U,D,x,minute这五个变量,其中N,U,D是通过scanf()函数来赋值,x和minute定义初始值为0,这五个变量都是整型;
数据处理:Begin(算法开始)
        int N,U,D,x=0,minute=0;
        分别输入N、U、D的值
        while x<N{    //当x的值小于N值是时,执行循环语句;
        if x+U<N{
        minute+=2;  //minute循环加2
        x+=U-D;  //x循环加U-D}
        else{
        minute+=;  //minute循环加1
        x+=U;  //x循环加U}}
        输出minute的值
        End(算法结束)

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
12、3、1 11 使用题目所给数据
5、2、1 7 使用较小数据
120、3、1 119 使用较大数据
120、30、10 11 放大题目输入数据10倍

1.2.4 PTA提交列表及说明

提交列表说明:
    1.编译错误:x没有定义初始值0;
    2.部分正确:错把while的循环结束语句写x<N;
    3.部分正确:出现逻辑错误,向上和向下没有完全弄清楚;
    4.答案正确:通过改正并借鉴同学答案正确;

2.代码互评(5分)

同学代码截图

自己代码截图

不同之处:
    1.while的终止条件不同;
    2.第一个同学只用了if语句,而我用了ih-else语句;
    3.时间的累加方式不同。

3.学习总结(15分)

3.1 学习进度条(5分)

这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周(9/17-9/22) 5小时 43行 学会写最简单的代码
第二周(9/24-10/4) 6小时 62行 学会温度转换
第三周(10/6-10/13) 11小时 86行 学会写函数程序 不知道怎么在什么情况下调用scanf()函数
第四周(10/14-10/20) 10小时 105行 for循环语句和循环结构 不知道定义多少个变量
第五周(10/21-10/27) 10.5小时 114行 学会怎样去定义一个函数和它的基本格式 对于函数题的编程不知道该怎么样去设计
第六周(10/28-11/3) 12小时 135行 学会二分支结构和if-else语句 对于输入一个正整数,然后输入对应数量的数值的代码编写存在迷惑
第七周(11/4-11/10) 13.5小时 173行 学会怎样用switch简化代码的复杂性 使用switch语句时怎么能够很好的与其他语句很好的衔接
第八周(11/11-11/17) 10小时 157行 学会使用do-while语句和while语句 while后面的循环结束执行条件该如何判定

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

本周我们学习了while语句和do-while语句,它们都可以实现循环,前面已学习了for循环,但是与for循环的不同是while循环是循环结束执行条件,而for循环是明确循环次数,而且它们的语句结构的学习也非常简单,有相似之处,也有不同之处。

3.3.2 学习体会

这一次的PTA作业我自认为第一个和第四个比较好做,其它三个题目难度系数比较大,因为我对进制的编写感觉有困难,但是我通过数学思想转换来编写能够部分正确,既有欣喜,又有忧愁,因为我没有全对,那就是错的。但是我去网上搜索到的答案完全截然不同,还用了字符变量,而我对字符变量不怎么了解,所以我必须要加强这方面的知识,因为这对以后解题会有帮助的。另外,这次作业博客字数和代码行数有所下降,还需努力,加油吧!!!
posted @ 2019-11-14 23:10  李权计科二  阅读(202)  评论(3编辑  收藏  举报