• C语言I博客作业08


    一、本周教学内容&目标
    第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
    二、本周作业头

    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 http://edu.cnblogs.com/campus/zswxy/2019TA/homework/9984
    我在这个课程的目标是 熟练掌握while与do-while的使用方法
    这个作业在那个具体方面帮助我实现目标 练习markdown语法以及自主寻找资料的能力
    参考文献 百度

    三、本周作业##

    1. PTA作业###

    **1.1 7-3 jmu-c-二进制转10进制 **.

    1.1.1 数据处理

    • 数据表达:提出了数组a用于存储字符型,i,j用于for循环,count用于计数(strlen同样可以做到,但是我还是使用count做计数器),sum来存储结果,整数型数组number用于存储相应的字符型数组a的ASCLL值,用于后续计算;
    • 数据处理:
      /*
      IF a[j]!='0'或'1' THEN
      do flag=0;
      ELSE
      number[j]=a[j]-'0';
      count++;
      END IF
      */
      1.1.2 实验代码截图
      输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!

    输入样例1:####

    11111111
    

    输出样例1:####

    255
    

    输入样例2:####

    34
    

    输出样例2:####

    error input!
    

    1.1.3 造测试数据

    输入数据 输出数据 说明
    11111 31 输入数值进行验证
    0000000 0 全部为零
    10101010 170 1与0交叉进行验证
    15142411 eroor input! 输入含有非0 1 数字

    1.1.4 PTA提交列表及说明

    1.部分正确:开始使用的为整形数组进行编写,但是存在一个答案错误(体重也说了遇到回车就停止,强调是字符型,后改就正确了)
    2.答案正确:...
    

    1.2 7-5 爬动的蠕虫.

    1.2.1数据处理

    • 数据表达:提出了题目所需的整形变量N,U,D;提出时间T,爬的路程sum;
    • 数据处理:
      /*
      for T <- 1 to N
      do sum <- sum - D;
      T++;
      sum = sum + U;
      end
      */
      1.2.2 实验代码截图
      一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?

    这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

    输入格式:####

    输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
    

    输出格式:####

    在一行中输出蠕虫爬出井的时间,以分钟为单位。
    

    输入样例:####

    12 3 1
    

    输出样例:####

    11
    

    1.2.3 造测试数据

    输入数据 输出数据 说明
    26 8 6 19 输入数据进行验证
    86 8 12 1073741831 不符合要求的输入造成错误
    74 9 3 23 符合要求的计算
    12 3 1 11 验证题目所给输入与输出

    1.2.4 PTA提交列表及说明

    答案正确:小学题目,唯一的问题就是最后如果出去后就不会下降了,围绕这个问题编写就可以了
    

    **1.3 整除光棍 **.
    1.3.1 数据处理

    • 数据表达:提出输入整形n,用于for循环的i,用于后面进行判断的flag;
    • 数据处理:
      /*
      for 要求无限循环但是i=1开始且进行i++
      do x=x * 10 + 1;
      if x>=n then
      flag=1;
      输出x/n;
      else flag=1 then
      输出0;
      else

      end if
      if x为0 then
      break;
      end if
      end
      */

    1.3.2 实验代码截图

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

    提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

    输入格式:####

    输入在一行中给出一个不以5结尾的正奇数x(<1000)。
    

    输出格式:####

    在一行中输出相应的最小的s和n,其间以1个空格分隔。
    

    输入样例:####

    31
    

    输出样例:####

    3584229390681 15
    


    注释:此代码一开始为不懂上网查的,但是我已明白如何做出此题目(说实话他的代码不规范,好难看)。

    1.3.3 造测试数据

    输入数据 输出数据 说明
    31 3584229390681 15 验证题目所给输入与输出
    51 2178649237472766884531590413943355119825708061 随机给入数据验证
    15 数据太多且不能停止(无解) 个位为5无法整除
    8 同上无解 偶数不行

    1.3.4 PTA提交列表及说明

    1.部分正确:开始时时想直接当存在某个光棍数可以整除n时,直接输出,但是存在输出的数字过大,超出存储数据的范围(应用除法来解决)
    2.答案正确:...
    

    2. 代码互评###

    同学代码 自己代码 同学代码

    注释:上述代码全部从网站上找的
    第一份代码位置
    第二份代码位置

    与第一份的对比:
    同:都是利用除法来解决问题(都是多次输出来构成一个正确的答案),都要用无限的循环结构来解决这道题目(break打破);
    不同:他使用while,而我使用for;我对m<n进行判断,在这输出一个0,他仍是直接输出m/n,这比我更加简便;我直接用i计数,他则仍需一个计数器,这一点我更好;最后,感觉他的比我的更好一点;
    与第二份代码的对比:
    同:应用除法来每次算出一个数字,最后做总结;
    不同:他使用字符型进行存储着他用除法每次计算出的数字,最后将数组输出(他数组加上'0'是因为数组在不需要存储会存在''来终止,),而我时直接进行输出;
    针对第二份代码的总结:想法很好,但是存在一个问题,就是如果,输出数字可能不可能出现超过1000位的数字,如果可能那就只是PTA的验证中不包含超过1000位的,使得此代码可以正确,所以我感觉还是直接输出就好了,但是这个人很有想法,值得学习;
    

    3. 学习总结###

    3.1 学习进度条.

    周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第七周 9小时 513 定义函数 return的返回位置
    第八周 12小时 467 局部变量与全局变量 暂无
    第九周 12小时 483 数组 暂无
    第十周 14小时 723 指针 暂无
    第十一周 15小时 832 结构 暂无
    第十二周 17小时 728 指针(内容更多) 暂无

    3.2 累积代码行和博客字数.

    3.3思维导图

    3.3.1 学习内容总结与体会
    C的学习进入到了尾声,但是出现了一系列强劲的一些命令用法,内容极多,仍需要一些题目来深入了解并熟悉使用;现在吧,感觉那些提升题其实不是特别难,但是它存在着一些我们需要想到的盲点,就像本周的提升题,一般提出一个变量进行存储这种思路行不通,因为不管什么类型,总是存在着取值范围的上限,而这道题给予我们换一种思路的方法来解决一些问题,但是这和算法有关,需要我们去学习;

  • 相关阅读:
    JAVA NIO 结合多线程
    ios即时通讯客户端开发之-mac上安装MySQL
    使用第三方库AFNetworking时遇到的问题
    用CocoaPods做iOS程序的依赖管理(转载)
    IOS8 设置TableView Separatorinset 分割线从边框顶端开始
    (转)UIViewController中各方法调用顺序及功能详解
    iOS中遍历数组的几种方法
    取消tableView上面多出来20个像素
    UIView动画中的一些坑
    ios build时,Undefined symbols for architecture xxx问题的总结(转)
  • 原文地址:https://www.cnblogs.com/lpen/p/11811511.html
Copyright © 2020-2023  润新知