C语言博客作业--嵌套循环
一、PTA实验作业
题目1:换硬币
1. 本题PTA提交列表
2. 设计思路
-
1.定义 整型变量count=0,fen5,fen2,fen1,money,total=0;
-
2.输入零钱的数目money
-
3.fen5 = money/5,最大fen5的个数,当fen5>=1进入第一层循环,再循环结束计算fen5--
-
4.fen2=money/2,最大fen2的个数,当fen2>=1进入第二层循环,再循环结束计算fen2--
-
5.fen1=money,fen1的最大个数,当fen1>=1时进入第三层循环,判断是否fen1+fen22+fen55 ==money当满足时合计个数total=fen1+fen2+fen5;并输出每个分钱的个数,再计算方法个数量count=count+1,最后fen1--。
-
6.重复以上循环直到fen5分钱的数量减少到1停止循环,最后输出count的个数。
3.本题调试过程碰到问题及解决办法
刚开始没有认真想嵌套循环在最里边循环的变量是最先变化的把fen5放在最里边的循环并用累加的办法来进行循环导致在大范围内无法实现题目中的按照从大到小排列出答案导致答案出错
后来经过多次把fen1,fen2,fen5的循序改变还是得不到正确的答案,后来请教老师得知用递减的做法来进行循环并把fen5放在第一个循环终于得到正确答案
题目2:歌唱比赛评分系统
1. 本题PTA提交列表
2. 设计思路
-
1.定义整型变量repeat(重复的次数),n,score(得分),i,x,total(总分) max,min;和double型变量average计算平均值
-
2.输入repeat的值,x=1当x<=repeat进入第一层循环
-
3.令average=0;total=max=min=0;输入n和得分score
-
4.计算total+=score;并假设第一个分数为最大最小值max=score;min=score,令i=1当i<n时进入循环,输入下一个得分score用if语句判断分数的大小
-
5.结束第二层循环后计算total=total-min-max;average=1.0*total/(n-2);输出average
3.本题调试过程碰到问题及解决办法
刚开始在第一次输入score时没有将score计入total中导致答案出错,后来由于在最后一行输出没有换行符导致在PTA上格式错误最后请教老师助教才找到错误
题目3:餐饮服务质量调查打分
1. 本题PTA提交列表
2. 设计思路
-
1.定义变量repeat,n,i,x,score; count1,count2,count3,count4,count5; a;
-
2.输入要重复计算的次数repeat,进入循环并赋值count1=count2=count3=count4=count5=0;
-
3.对不同的分数进行分别计数, count1++,count2++,count3++,count4++,count5++
-
4.按顺序依次进行for循环输出*的个数
3.本题调试过程碰到问题及解决办法
刚开始想用if语句进行判断输出但运行后发现输不出4
后来想到先用if语句来进行累计个数然后再用for循环语句进行输出
二、同学代码结对互评
1.互评同学名称
- 王林聪
2.我的代码、互评同学代码截图
我的代码
王林聪的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
-
不同点:在最后循环结束时对count数值的判断中林聪的更清楚明白,让人一眼就看懂,具有很强的可读性,而我的代码在对count计数时比较复杂
-
各自优势:思路简洁明了,简单易懂变量名都比较清楚,在代码后面都有适当的注释,我的代码对判断count计数复杂
三、截图本周题目集的PTA最后排名
四、本周学习总结
1.你学会了什么?
- 对于嵌套循环总算有了思路能够独立的完成题目,
- 知道了void函数不返回值,了解了局部变量和全局变量,在函数内部局部变量比全局变量优先但出了该函数内部局部变量失效
- 对于函数的调用和函数的定义声明了解了部分,但还是不够深入透彻的理解
2.本周的内容,你还不会什么
- 对于嵌套循环中的打印图形题还是弄不明白,对于计算机的思考方式了解还是不足,希望在后续的学习中能加强自己的思维,提高自己的能力
- 对于全局变量的定义及它与局部变量在代码中换来换去让人有点头晕,稍不注意就可能出错,希望在日后的学习中能克服困难
- 对于函数的定义方式还是不怎么了解,不能离开书本独立的创造出特定的函数并实行函数的调用,感觉自己的头脑跟不上