C语言I博客作业07

作业头

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11591
我在这个课程的目标是 学会while和do...while循环,本次作业拿到满分
这个作业在那个具体方面帮助我实现目标 作业的严格要求和PTA的精选题集
参考文献 《The C programming language》,CSDN
学号 20209078

1.PTA实验作业(20分/题)

7-4 猜数字游戏 (15分)

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

1.1.1 数据处理

数据表达:定义了整形变量number, times, guesstimes
数据处理:

        如果 ((guesstimes > times) 或 (guess < 0 && guesstimes <= times)) {
            输出("Game Over\n");
            结束;
        }
        如果 (guess > number) {
            输出("Too big\n");
        }
        如果 (guess < number) {
            输出("Too small\n");
        }
        如果 (guess == number) {
            情况一 (guesstimes == 1) {
                输出("Bingo!\n");
            }
            情况二 (guesstimes <= 3) {
                输出("Lucky You!\n");
            }
            情况三 {
                输出("Good Guess!\n");
            }

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
77 7 54 77 Too small Lucky You! 回合数小于3
77 7 77 Bingo! 回合数为1
77 7 7 17 37 77 Too small Too small Too small Good Guess! 回合数大于3且不结束游戏
77 7 7 17 37 47 97 377 777 Too small Too small Too small Too small Too big Too big Too big Game Over 一直没猜中

1.1.4 PTA提交列表及说明

提交列表

提交列表说明:

1.答案错误:为了证明while(0)运行不了,而里面的数大于1都行。
2.答案正确:之前在别人的电脑上写过,然后就一遍过了,答案错误是为了证明while(0)运行不了,而里面的数大于1都行。

1.2 单重循环—数鸡蛋

妈妈给小明家新送来 y个鸡蛋。 已知小明家原有鸡蛋的个数x是满足“三个三个的数剩1个,5个5个数剩z个,7个7个数剩3个”的最小数, 请问小明家共有多少个鸡蛋? (设输入为正数,不考虑非法输入)

1.2.1 数据处理

数据表达:定义了整形变量y,z,x。
数据处理:

    读取数值scanf();
    如果x%3==1且x%5==z且x%7==3
    则x满足条件
        利用循环累加直到满足条件跳出
    while(1!=(x%3==1&&x%5==z&&x%7==3)){
           x++;   
    }
    输出("%d",x+y);

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
3 2 55 题目样例
5 1 36 题目样例

1.2.4 PTA提交列表及说明

提交列表

提交列表说明:

1.编译错误:就是之前老师不是讲过条件成立就会变成1嘛,然后就改了一下,然后!=打成=了,因为我是1!=这种格式,所以报的编译错误。
2.答案正确:这方法可行。

2.代码互评(5分)

  • 同学代码截图
    同学一的作业

同学二的作业

  • 自己代码截图

  • 比较:
    1.同学一利用了数组,使用for循环完成这道题,十分巧妙。
    2.同学二“功夫不负有心人”一个一个列举,也写出了这道题。
    3.我的话,就用的是本周学的知识,但还能再优化。

3.学习总结(15分)

3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
10/12—10/18 40h 581 printf(),scanf()的用法,if-else的用法
10/19—10/23 33h 617 for循环
10/24—10/25 13h 262 do...while循环
10/26—11/1 15h 458 自定义函数
11/2—11/8 19h 144 pow(),sqrt()函数
11/9—11/15 14h 597 函数 如何改错,会调试了还是很慢,不熟练
11/16—11/22 21h 241 分支结构 函数递归?还有如何替换字符串。C(gcc)和C(clang)的区别,什么情况叫做数组越界
11/23—11/29 29h 868 switch语句 我也不知道我从哪开始就懵了
11/30—12-6 10h 179 while和do...while循环

3.2 累积代码行和博客字数(5分)

时间 博客字数 代码行数
第一周 1951 879
第二周 1994 458
第三周 6917 144
第四周 1924 597
第五周 4553 641
第六周 3792 868
第七周 4849 179

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

3.3.2 学习体会

学习内容总结:

  • 本周我们学习了switch循环,避免了多分支时用十多个if导致的麻烦。

感悟:

  • 那个啥比赛,做那感觉旁边的人得心应手,我tm除了签到题啥都不会
  • 又是没啥收获的一周,社团挺耗时间的,真不希望有这种被牵着鼻子走的感觉。还有就是写不出,烦躁,好困好困好困。
  • 这周的PTA告诉了我写题要先读懂题,那个比赛告诉我我学得太少。
posted @ 2020-12-04 11:23  岚影  阅读(119)  评论(7编辑  收藏  举报