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

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585
    这个作业的目标 < 熟悉使用while和do-while结构解决问题。>
    学号 <20209145>

    一、PTA实验作业。

    1.1.1题目:

    (猜数字游戏)猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。

    1.1.2数据处理:

    数据表达:运用了整型变量x,y,N,i;x,y,N是输入值,i是记录循环次数。
    数据处理:while i<=N&&y!=x
    i <- i+1
    i==N+1 等。

    1.1.3 造测试数据:

    输入数据 输出数据 说明
    1 21 Bingo 一次猜出结果
    21 43121 Too bigLucky You! 第一次太大,三次内猜对
    21 419-1 Too smallGame Over 第一次太小,有负数游戏结束
    21 11921 Too smallGame Over 第一次太小,在N次内没猜对

    (表示换了一行)

    1.1.4实验代码截图:

    1.1.5PTA提交列表及说明:

    1.编译错误:没有定义i的初始值。
    2.部分正确:没考虑当i的值大于N时,跳出while循环,i的值是N+1,此时得到的答案为Good Guess!,而不是Game Over。
    读代码容易看出没有定义i;当i为N+1跳出循环后重新赋值i且不与其它值冲突(定义为负数)。

    1.2.1题目:

    (购物(二))用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。

    1.2.2数据处理:

    数据表达:运用了整型变量i,n;浮点型x,sum,result;x是输入值,i记录商品个数,n记录循环个数,sum记录商品总价。
    数据处理:sum <- i <- 0
    for n <- 1to11
    else sum <- sum+x
    i <- i+1
    if i==0 等。

    1.2.3造测试数据:

    输入数据 输出数据 说明
    890.78 2769.8 12300 3532.2 -1 4873.19 这些商品的平均价格为4873.19
    100000 100000 9876.54 -1 69958.85 这些商品的平均价格为69958.85
    10 21 11 1 2 3 4 5 6 0 -1 6.30 这些商品的平均价格为6.30

    1.2.4实验代码截图:

    1.2.5 PTA提交列表及说明:


    1.运行超时:当输入-1时没中断循环。
    2.部分正确:当一件商品也没有时i为0,此时i不能做分母。
    3.部分正确:当有10件商品时要循环输入11次,当条件为(n=1;n<=10;i++)时只循环输入了10次。
    容易看出没中断问题;当i为0时重新赋值一个值;改变循环条件。

    二、代码互评。

    同学代码:

    我的代码:

    1.同学用的是while循环,我的是for循环。
    2.他定义的字符较少,并一边定义一边赋值。
    3.他的不存在i为0的情况。

    同学代码:

    我的代码:

    1.我用了switch判断结构,他的全是if-else判断结构。
    2.他的中断语句是“goto end”,我的是“break”。
    3.他的判断于输出全在while结构里,我的部分在while结构里。
    4.他的循环条件是输入。
    5.他的结束语句前加了end(end:return 0;)。

    三、学习总结。

    3.1 学习进度条。

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    8 29h 500 输入、输出函数 除法的运算法则
    9 30h 530 其他类型的函数 判断语句if else
    10 31h 600 for循环、if else判断 数组问题
    11 30h 520 调用函数 调用自己定义的函数
    12 29h 490 多分枝判断结构if-else、字符型 或、且运算符
    13 28h 400 多分枝判断结构switch 或、且、非的优先情况
    14 28h 500 多分枝循环结构while do-while while和do-while的区别

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

    时间 博客字数 代码行数
    第八周 1300 500
    第九周 1400 530
    第十周 1600 600
    第十一周 1500 520
    第十二周 1500 490
    第十三周 1520 400
    第十四周 1520 500

    3.3 学习内容总结和感悟。

    随着东西学的越多,每个人的做题风格也有了明显的区别,每一题有多种解法。学习C语言我觉得搭积木一样,每个语法都是积木,可以用不同的积木搭出相同的物体,所以不同的人做同样的题,会用到不同的语法。现阶段的我们可以用合适我们自己的习惯、思维的语法,但是以后我们还是要面临追求最优解。“不积跬步无以至千里,不积小流无以成江海”,要想成为能高效的得出最优解的编程大佬,只有增加自己掌握的积木数量。

  • 相关阅读:
    spring cloud 和 阿里微服务spring cloud Alibaba
    为WPF中的ContentControl设置背景色
    java RSA 解密
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    Hystrix 配置参数全解析
    spring cloud 2020 gateway 报错503
    Spring Boot 配置 Quartz 定时任务
    Mybatis 整合 ehcache缓存
    Springboot 整合阿里数据库连接池 druid
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
  • 原文地址:https://www.cnblogs.com/abcdefg2345/p/14078504.html
Copyright © 2011-2022 走看看