这个作业属于哪个课程 | https://bbs.csdn.net/forums/csuft_swxy_C?category=0&typeId=17321 |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/603526787 |
这个作业的目标 | 熟练运用while,for循环和if-else语句 |
学号 | 20208989 |
一、本周作业(总分40分)
1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)
7-1 韩信点兵 (10 分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数。
1.1.2 数据处理
数据表达:int类型变量n。
数据处理:用了for循环来依次增加人数直到满足条件和break跳出if语句,if语句判断当人数满足条件的情况。
1.1.3 PTA提交列表及说明
编程总结:没有用break跳出if语句导致死循环。
7-2 找出一批学生的最高分 (15 分)
本题要求编写程序,找出最高分。
输入格式:
输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出最高分。
输入样例:
在这里给出一组输入。例如:
67 88 73 54 0 95 60 -1
结尾无空行
输出样例:
在这里给出相应的输出。例如:
95
结尾无空行
1.1.2 数据处理
数据表达:int型变量定义最高分max,分数grade。
数据处理:通过while循环依次输入分数,if语句依次判断分数的大小来得到最高分。
1.1.3 PTA提交列表及说明
编程总结:scanf输入没有循环,只输入了一个数。
7-3 购物(二) (25 分)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:
若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:
一个实数,表示商品的平均价格,精确到小数点后两位。
输入样例:
890.78 2769.8 12300 3532.2 -1
结尾无空行
输出样例:
4873.19
结尾无空行
1.1.2 数据处理
数据表达:int型变量n,double型变量price,average。
数据处理:通过while循环来计算价钱的总和以及商品的数量,再求平均值。
1.1.3 PTA提交列表及说明
编程总结:没有先递增商品的数量,导致结果错误。
7-4 循环-古角猜想 (20 分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
输入格式:
输入一个自然数n
输出格式:
输出每次运算步骤,直到结果为1.
输入样例1:
5
结尾无空行
输出样例1:
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
结尾无空行
输入样例2:
6
结尾无空行
输出样例1:
6/2=3
33+1=10
10/2=5
53+1=16
16/2=8
8/2=4
4/2=2
2/2=1
结尾无空行
1.1.2 数据处理
数据表达:int型变量n,m。
数据处理:while循环对计算结果多次运算,if-else语句判断奇数和偶数时的运算结果。
1.1.3 PTA提交列表及说明
编程总结:计算一次后,没有把计算完的值赋给n,导致死循环。
2. 学习总结
2.1 学习进度条(5分)
周/日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
11/22-11/28 | 4h | 34 | 分治算法和贪心算法的基础概率和while循环和if语句的熟练运用 | 分治算法的代码理解 |
2.2 累积代码行和博客字数
2.3 学习感悟
重新复习了一下云班课里的循环结构,发现有些知识还未完全掌握,如循环里的break的跳出。看了一下C语言的工具书,对学的知识巩固一下,防止忘记,加强理解题目的能力和把题目用C语言如何表示,先理清思路再做题会轻松一些。