• 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作业我自认为第一个和第四个比较好做,其它三个题目难度系数比较大,因为我对进制的编写感觉有困难,但是我通过数学思想转换来编写能够部分正确,既有欣喜,又有忧愁,因为我没有全对,那就是错的。但是我去网上搜索到的答案完全截然不同,还用了字符变量,而我对字符变量不怎么了解,所以我必须要加强这方面的知识,因为这对以后解题会有帮助的。另外,这次作业博客字数和代码行数有所下降,还需努力,加油吧!!!
  • 相关阅读:
    HDU 5441 离线处理 + 并查集
    [转载]HDU 3478 判断奇环
    POJ 1637 混合图的欧拉回路判定
    [转载] 一些图论、网络流入门题总结、汇总
    UVA 820 --- POJ 1273 最大流
    [转载 ]POJ 1273 最大流模板
    POJ 3041 -- 二分图匹配
    2014西安现场赛F题 UVALA 7040
    UVA 12549
    割点、桥(一点点更新)
  • 原文地址:https://www.cnblogs.com/classtest123/p/11846121.html
Copyright © 2020-2023  润新知