C语言第三次作业--嵌套循环
一、PTA实验作业
题目1:硬币数
1. 本题PTA提交列表



2. 设计思路
- 步骤一:定义整型变量fen5,fen2,fen1,表示1分2分和5分,零钱数额x,总硬币数total,换法count
- 步骤二:变量初始化count=0,输入零钱数额x
- 步骤三:先计算5分的最多个数,再计算2分个数,最后计算1分个数
- 步骤四:如果满足fen55+fen22+fen1*1==x,则依次输出5分,2分一分的个数以及total的值(total=fen5+fen2+fen1),count加一
- 步骤五:重复步骤三
步骤六:输出count的值
3. 本题调试过程碰到问题及解决办法



运行后count的值太大,调试了一下发现下一步确实有加上1,只是最开始数值不对,然后我就意识到是自己没有将count赋初值,改正了过来。运行与题目给出的答案一致,但是PTA就是显示部分正确,然后自己测试了其他的数值,发现输入的数值大了之后5分就没有从小到大排列,于是我就把循环的递加改成了递减,终于改对了。

题目2:梅森数
1. 本题PTA提交列表

2. 设计思路
- 步骤一:定义整型变量n,i,m,j,n为幂指数,m用于存放pow(2,i)-1的值,i,j为循环变量
- 步骤二:输入n
- 步骤三:如果n=1,直接输出None,
- 步骤四:如果n>=2,令i=1,计算m=pow(2,i)-1,并执行步骤5
- 步骤五:令j=2,如果m%j==0,则停止步骤5,如果,否则j++;直到j>sqrt(m)停止循环步骤5.i加一
步骤六:重复步骤4,直到i>n
3. 本题调试过程碰到问题及解决办法


第二个循环原本我用的是j<=i,如上图,后来答案就直接63了

然后我就调试了一下,发现如果是j<=i,那么第二次循环最开始就只能做一次,后来我就翻书又仔细看了前面的章节里关于素数的判断部分,然后改正了回来
然后提交提示部分正确,没有考虑为空集的情况,后来想了一下空集就是没有素数,只有1的时候就是没有一个素数,于是加进一个n==1的判断条件就正确了。题目3:歌唱比赛评分系统
1. 本题PTA提交列表



2. 设计思路
- 步骤一:定义整型变量repeat为评分系统的重复次数,i,j为循环变量,grade为每个评委打出的成绩,max用于存放一组成绩中的最大值,min用于存放一组成绩中的最小值,定义浮点型变量score存放选手的最终成绩
- 步骤二:输入repeat的值
- 步骤三:令i=1,输入n的值,赋初值sum=0,输入第一个成绩grade,将第一个成绩赋值给max,min和sum
- 步骤四:j=1,再输入一个grade,sum=sum+grade,如果grade
- 步骤五:重复步骤四,直到j=n
- 步骤六:计算score=(sum-min-max)*1.0/(n-2);输出score的值,并保留两位小数,i++;
步骤七:重复步骤三,直到i>repeat
3. 本题调试过程碰到问题及解决办法

最开始做题是时候觉得很乱,不知道要怎么同时判断最大值和最小值,一直修改,改到跟输入例题答案一样了,很开心,但还是错误的。然后其实我对题目还是很懵。
后来想到可以分别判断最大值和最小值,答案正确了之后还是提交部分正确,再然后调试了一下文艺出错,想到前面题目没有赋初值,就加入了sum=0,但是最开始是放在定义那里的,不对,后来跟同学一起讨论,终于把sum=0放在了第一个循环里,就对了。二、同学代码结对互评
1. 互评同学名称:梁才玉
2..我的代码、互评同学代码截图
- 梁才玉的截图

我的截图

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?
- 不同:才玉的代码先进行循环,再循环里判断n=1的情况,我的是先把n=1的情况分出来,再进行循环
- 各自优势:才玉的代码直接进入循环,让思维直接进入了判断是否为素数的代码里,然后在循环里判断n=1的情况也比较清楚。
我的代码先判断n=1,再在n>=2的情况判断梅森数的个数 我个人比较喜欢我自己的代码风格,因为这样就不用在循环里再嵌一个判断条件,个人觉得更加清楚一些,不会乱。
三、本周题目集的PTA最后排名

四、本周学习总结(1分)
1.你学会了什么?
- 懂得了变量初始化的重要性,学会了变量初始化的应用,有一些题,比如说求阶乘相加的题,如果没有变量初始化就会使得结果相差很大,例如本次作业的第7第8题,都要在正确的地方将一些值赋值为0,这些通过调试也就很好发现,错了这么多次变量初始化,深刻得记住了!
- 上周博客内容里不会的调试问题这周也会了,觉得使用调试会比较快得发现自己问题在哪儿,错在哪里,更加省时间。
- 学会了如何嵌套,先找到第一个循环(范围较大,限制第二个循环的循环次数),再找到第二个循环,然后一定要找准循环结束的条件!
学会了耐心认真对待编程。说实话我最开始写编程耐心不够,这一次那个空心菱形的题我是最后才做的,结果一直在那里写写了3个小时,因为是中午吃完饭就开始写,所以中途好几次都想去睡觉,最后还是坚持下来了,虽然写三个小时时间很长,但是写完还是很开心的,我感觉自己有了进步。
2.本周的内容,你还不会什么?
虽然对题意的理解上好了一些,但是仍然感觉自己再理解题目这方面还是比较吃力的,那个换硬币的题目我最开始是以为从大到小输出就是先5分再2分再1分就可以的了,理解题意真的真的真的很重要,我希望我能够一点点改善这个问题。其他的都还好,好几题都提交了好多遍,总共的提交列表都有两大页,错误我都记住了,总的来说还是感觉认真耐心得完成作业收获真的很大。
C语言第三次作业--嵌套循环的更多相关文章
- C语言第三次作业总结
本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...
- C语言第三次作业---单层循环结构
一.PTA实验作业 题目一.最佳情侣身高差 1.实验代码 int N;//存放输入的人数 char sex; double hight1,hight2;//分别存放输入的身高和输出的身高 scanf( ...
- C语言第四次作业--嵌套循环
一.PTA实验作业 题目1:打印九九口诀表 1.本题PTA提交列表 2.设计思路 (1)定义三个整形变量n,j,i,n表示任意给定的正整数. (2)输入一个正整数n. (3)令i=1,i<=n, ...
- C语言 第三次作业--函数
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
- C语言第三周作业---单层循环
一.PTA实验作业 题目1 1.实验代码 int N = 0,i; char sex; float a[9], height; scanf("%d\n", &N); for ...
- C语言--第三周作业
一.PTA作业中4个题目 1.7-9 A乘以B 要求:输入的两个整数:A是你学号前两位数字,B是你学号后两位数字 a.代码 #include <stdio.h> int main () { ...
- C语言——第三次作业
题目1.A乘以B 1.实验代码 #include <stdio.h> int main() { int A,B,C; scanf("%d %d",&A,& ...
- c语言第三次作业。
---恢复内容开始--- (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 源代码 : 第一次编译: 错误原因:if 后面有分号 改正方法:去掉分号 ...
- C语言——第三次作业(2)
作业要求一 PTA作业的提交列表 第一次作业 第二次作业 一道编程题: 有一个axb的数组,该数组里面顺序存放了从1到a*b的数字.其中a是你大学号的前三位数字,b是你大学号的后四位数字,比如你的学号 ...
随机推荐
- python之文件读写详解
打开文件 函数open() 参数说明: file:文件路径 mode: 文件的读写方式,默认'r',只读方式: buffering:设置缓冲策略,0用于二进制文件,1为行缓冲,用于文本模式:默认二进制 ...
- Dockerfile 中的 multi-stage
在应用了容器技术的软件开发过程中,控制容器镜像的大小可是一件费时费力的事情.如果我们构建的镜像既是编译软件的环境,又是软件最终的运行环境,这是很难控制镜像大小的.所以常见的配置模式为:分别为软件的编译 ...
- 使用Spring-boot小结
Spring-boot的特点是,通过注入的方式生成FsShell对象,来操作HDFS,其底层封装了HDFS的的shell命令 1. 添加Spring-boot依赖 pom.xml文件 <!--添 ...
- 【BZOJ2152】聪聪可可(点分治)
[BZOJ2152]聪聪可可(点分治) 题面 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电 ...
- 【BZOJ2875】随机数生成器(矩阵快速幂)
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me ...
- 【CJOJ1494】【洛谷2756】飞行员配对方案问题
题面 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员,其中1 名是英国飞行员,另1 ...
- [BZOJ1016] [JSOI2008] 最小生成树计数 (Kruskal)
Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的 ...
- jxl 导出数据到excel
优点: Jxl对中文支持非常好,操作简单,方法看名知意. Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写 支持Excel 95-2000 ...
- 图之单源Dijkstra算法、带负权值最短路径算法
1.图类基本组成 存储在邻接表中的基本项 /** * Represents an edge in the graph * */ class Edge implements Comparable< ...
- java序列化浅谈
首先大家进来第一个疑问肯定是"什么是序列化?为什么要使用序列化?怎么实现一个简单的序列化案例?" 1.序列化就是把对象以一种规范的二进制形式存在内存中,另一边以反序列化方式获取: ...