zoukankan      html  css  js  c++  java
  • C语言I博客作业08

    这个作业属于哪个课程 C语言程序设计I
    这个作业要求在哪里 作业链接
    我在这个课程的目标是 熟练掌握C语言,能独立完成简单项目,毕业前想做出一个简单的游戏
    这个作业在那个具体方面帮助我实现目标 熟练掌握while的使用
    参考文献 作业评价标准

    1、PTA实验作业

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

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

    1.1.1 数据处理

    • 数据表达:定义了三个整型变量,N表示输入数据,g表示数据位数,u表示各个位数之和。
    • 数据处理:

    伪代码如下
    定义N,g,u;
    输入数据N;
    do //先执行一次循环体
    u+=N%10;
    N=N/10;
    g++; //计数器
    while(N!=0) //判断循环条件,是否继续循环
    输出g,u;

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    321 3 6 样例,正确
    1234 4 10 随机数,正确

    1.1.4 PTA提交列表及说明

    • 1、编译错误:输入语句后没加分号。
    • 2、多种错误:表达式顺序错误,输出语句中未给出输出的变量是什么。

    1.2爬动的蠕虫

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

    1.2.1 数据处理

    • 数据表达:定义了五个整型变量,N表示井深,U为每分钟上升高度,D为每分钟下滑高度,s为蠕虫位移,t为所用时间。
    • 数据处理:

    伪代码如下
    **定义N,U,D,s=0,t=0; ** //初始赋值为0
    输入N,U,D;
    while(s<=N) //判断循环条件
    s+=U;
    t++;
    if(s>=N) //上升到N时跳出循环
    输出t;
    else //未到N高度继续循环
    s-=D;
    t++;
    输出t;

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    12 3 1 11 样例,正确
    45 5 3 41 随机数据,正确

    1.2.4 PTA提交列表及说明

    • 1、多种错误:开始直接用每两分钟上升U-D计算,解题思路有错误,因为只要到达了井顶就可以输出时间了,但该思路还会再算一次下滑和上升。
    • 2、部分正确:if语句的执行条件有误,开始写的s==N,应该写s>=N。

    2、代码互评

    同学代码

    我的代码


    • 1、我的代码虽然没有错误,但篇幅很长不够简洁,而且还要先计算累加天数,很麻烦。
    • 1、此同学的代码表达明确,虽然所用的语句和我一样,但在我的基础上简化了许多,简洁明了的表达了他的数据处理思路。复杂问题简单化,长篇代码简洁化,这是我应该向他学习的地方。

    3、学习总结

    3.1 学习进度条

    日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
    10/7--10/13 9+个小时 100+ 编写if-else语句,算术运算与赋值运算规则等 while语句的使用以及适用范围
    10/14--10/20 8+个小时 190+ for的使用,if-else与for的组合使用 while与for的区别
    10/21--10/27 6+个小时 340+ 定义函数与调用 对函数的定义与调用不熟悉
    10/28--11/3 6+个小时 260+ if-else的镶嵌结构 用太多if-else会比较混乱
    11/4--11/10 6+个小时 170+ switch语句的基本运用 switch与if-else的区别
    11/11--11/17 6+个小时 120+ while语句的使用 什么是指针

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结


    思维导图

    3.3.2 学习体会

    • 答:1、本周学习情况良好,上课有在积极参与抢答,课后作业完成度较高,但代码量较小,因为本周及下周学科部事情比较多,自行练习时间较少,while语句使用还不太熟练,还需要练习巩固。
      2、这周学习内容为while的使用方式和结构,以及do-while的用法和while的区别:while用于不确定循环次数的计算,do-while和while的区别在于do-while先执行一次循环体再判断循环条件,而while是先判断循环条件再执行循环体。
      3、PTA作业普通题难度适中,挑战题难度较大,没有独立完成,但请教了同学以及上网查了解析之后大致了解,但独立完成类似题仍然比较困难。
      4、学习如逆水行舟,不进则退。
  • 相关阅读:
    ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 17 电话号码的字母组合
  • 原文地址:https://www.cnblogs.com/solokill/p/11856493.html
Copyright © 2011-2022 走看看