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告诉了我写题要先读懂题,那个比赛告诉我我学得太少。