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

    问题 回答
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 C语言I博客作业08
    我在这个课程的目标是 完全独立编写一个小游戏程序,并能正常运行。
    这个作业在那个具体方面帮助我实现目标 帮助我熟悉使用while和do-while结构解决问题
    参考文献 《C语言程序设计》 《C Primer Plus》

    1.PTA实验作业

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

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

    1.1.1数据处理

    数据表达:用int定义变量n,i,sum。类型为整型变量。
    数据处理:数据用到关系表达式,赋值表达式,条件表达式和while循环结构。

    定义整型变量 输入的整数n,循环次数i,整数各位数的和sum,并且赋值为零。
    scanf("%d",&n);
    while循环语句(n>0)
    {
    sum的关系表达式 sum=sum+n%10;
    n=n/10;
    i++; (循环此语句,以此计算n的各数及和)
    }
    printf输出 循环次数i,n各位数和sum;
    返回零;

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入 输出 说明
    52 2 7 两位数
    123 3 6 三位数
    8868 4 30 四位数

    1.1.4 PTA提交列表及说明

    1.答案错误:忘记给sum赋值为零,导致答案错误,于是给sum赋值为零。
    2.答案错误:while语句条件里n应该大于零。

    1.2 爬动的蠕虫

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

    1.2.1 数据处理

    数据表达:用int定义变量N,U,D,t,s,类型为整型变量。
    数据处理:用了关系表达式,赋值表达式,条件表达式,while循环结构和if-else分支结构。

    定义变量N,U,D,时间t,蠕虫爬的长度s;
    scanf函数输出;
    while循环语句(真)
    {
    s表达式;
    t表达式;
    if(当蠕虫爬的路程小于井长)
    {
    s表达式;
    t表达式;
    }
    else
    break;跳出当前结构
    }
    printf输出;
    返回零;

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入 输出 说明
    34 5 1 17 D<U
    23 4 4 无结果 D=U
    33 2 3 无结果 D>U

    1.2.4 PTA提交列表及说明

    1.运行超时:未用break语句跳出当前循环,导致运行超时。
    2.答案错误:一开始将题目简单的认为可以直接算作蠕虫两分钟爬(U-D)米,但是运行时候发现时间多了,原来蠕虫在我所计算出的时间之前就爬上了顶。后来就将程序改成一分钟一分钟计算的。然后重新编写。

    2.代码互评

    同学代码截图


    自己代码截图

    1.同学一的代码比我的看起来更加规范,每一部分都很清晰的呈现出来,让人更易读懂。
    2.两位同学都将变量分成两部分定义,而我比较喜欢一次定义完。
    3.同学在写关系表达式时喜欢用简单一点的比如a++,a+=b.....等等诸如此类的,而我仍然使用数学思维写成a=a+1,a=a+b。我觉得两者皆可吧,不一定非要用哪一种。

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第三周10.9-10.12 两天 188 对代码数据的处理了解,比如类型结构等 什么时候用int,double声明变量,逻辑运算符的运用等
    第四周10.16-10.18 一天半 190 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 循环体中的关系表达式的正确运用
    第五周10.23-10.26 两天 226 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 具体如何在题目中定义函数,参数又应放在哪里才是正确位置
    第六周10.30-11.2 三天 348 分支结构应用,逻辑运算符的使用 在使用if-else语句时{}的位置与格式,语句一多就搞不清楚了
    第七周11.5-11.8 两天半 300 switch语句作为分支结构应用 伪代码到底该如何编写,写的详细和正规代码没什么两样,写的粗略思路又不够清晰
    第八周11.13-11.15 两天半 300 使用while和do-while结构解决问题 对于不同情况下for循环语句和while循环语句如何选择使答题更简便

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    • 学习内容越来越多,难度越来越大,比起之前学得略显吃力,每个知识点都要花更多的时间精力去钻研。
    • 学习了多种结构后将一些题目的答题过程简化了,让人更让容易编写出答案,更容易理解过程。
    • 关于本周知识点:
      whlie 先计算“表达式”的值,当值为真(非0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
      do-while循环与while循环的不同在于:do-while会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”.
  • 相关阅读:
    [LeetCode] 17. 电话号码的字母组合 ☆☆☆(回溯) ###
    [LeetCode] 22. 括号生成 ☆☆☆(回溯)
    [LeetCode] 15. 3Sum ☆☆☆(3数和为0)
    Trie 树(字典树)
    dubbo框架梳理
    Linux内存管理与C存储空间
    C语言实现的minixml解析库入门教程
    函数不定参数个数的实现
    C语言变量名转字符串的方法
    C语言编译和链接
  • 原文地址:https://www.cnblogs.com/oyxyoyxyo/p/11851498.html
Copyright © 2011-2022 走看看