这个作业属于哪个课程 | https://bbs.csdn.net/forums/csuft_swxy_C?joinKey=rjrg8lmq4wzq-p9oj9kxrkm-1-60300df3382549104a12bbe9f193eb77&typeId=17321 |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/603526787 |
这个作业的目标 | <循环的用法> |
学号 | <20218527> |
一、本周作业(总分40分)
1.1 完成PTA作业,并给出编程题完成截图,截图上有自己的学号及姓名标识(不是截图形式的计0分)(每题5分)
7-1 韩信点兵 (10 分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
- 按从1至5报数,记下最末一个士兵报的数为1;
- 再按从1至6报数,记下最末一个士兵报的数为5;
- 再按从1至7报数,记下最末一个士兵报的数为4;
- 最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式
输出韩信至少拥有的士兵人数。
数据表达:用int定义变量n,i,并给i赋初始值0
数据处理:用for循环,初始化条件为i=1,没有终止条件,所以用break终止循环,更新条件为i++,在循环中用if语句设置条件(i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10)来筛选需要的结果,然后用break结束循环,最后输出结果。
- 编译错误:条件之间没有用括号。
7-2 找出一批学生的最高分
本题要求编写程序,找出最高分。
输入格式:
输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出最高分。
输入样例:
在这里给出一组输入。例如:
67 88 73 54 0 95 60 -1
输出样例:
在这里给出相应的输出。例如:
95
- 数据表达:用int定义变量n,a,b,i,并给变量i赋初始值0。
- 数据处理:先输入第一个值到变量b中, 然后用while循环,条件为输入的值大于0,目的使当输入-1时结束循环,在循环中用了if语句,目的是筛选大的值然后继续输入下个数,直到输入-1,结束循环,最后输出最高分。
7-3 购物(二)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:
若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:
一个实数,表示商品的平均价格,精确到小数点后两位。
输入样例:
890.78 2769.8 12300 3532.2 -1
输出样例:
- 数据表达:用int定义变量i,用double定义变量x,sum,y,n。
- 数据处理:先将值输入变量n中,令变量sum也输入一样的值,用if语句,条件为n=-1,就输出0.00,如果n不等于-1,就开始while循环,继续输入下一个值到变量n中,然后变量sum等于输入的值的和,并且i不断加1,直到输入的值为-1时结束循环,最后输出总和除以i,即平均数
部分正确:开始没有加if(n==-1)的部分,没有考虑到所有情况
7-4 循环-古角猜想
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除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
- 数据表达:用int定义变量n。
- 数据处理:先输入值到n中,用while循环,如果除以2取余数不为0,即为偶数,然后使n除以2,如果n为奇数就乘以3加1,直到n为1
- 结束循环。
编译错误:变量n没有输入,忘记写scanf("%d",&n);
2. 学习总结
2.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第13周 | 6h | 140 | 循环,for循环,一些简单的算法 | 没有什么疑惑 |
2.2 累积代码行和博客字数
2.3 学习感悟
1.这周课上学了一点算法的概念,了解了分治法和贪心算法,感觉这些算法还是比较难的,然后现在可以比较了解这些概念,很多东西一开始都不会,但是我觉得学习c语言时需要不断地积累。一定要学会模仿别人优秀的代码、优秀的算法,然后将它记下来。