C语言第四次作业-嵌套作业

一.PTA实验作业

题目1:7-4 换硬币

1. 本题PTA提交列表

2.设计思路

  • 第一:定义三个整型变量f,t,o,分别代表五分,两分,一分的数量
  • 第二:输入待换金额x
  • 第三:令f=x/5;t=x/2;o=x;(即各自等于它们有可能的最大值)
  • 第四:进入for循环,先固定一个数如f,然后从大到小减小改变第二个数如t,每当t改变一次,o改变一轮,即从x到0;
  • 第五:这样可以对所有可能出现的情况进行判断:在每个循环里当5f+2t+o)==x时,输出printf("fen5:%d, fen2:%d, fen1:%d, total:%d ",f,t,o,f+t+o);并换行
  • 第六:在每一次输出结果时,令count--则可以统计换法数
  • 第七:输出count

3.本题调试过程中碰到的问题以及解决方案

(1)

  • 错误:答案错误,题目要求要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。而我恰巧相反从小到大
  • 解决方案:改变for循环条件,如下图:

(2):

  • 错误:部分错误,如下图一
    (1)发现count=2,而程序运行只显示了一种换法,发现在判断改变变量f,t后,是否符合5f+2t+o)==x后没有输出语句,即f,t发生改变后得到的换法没有输出
    (2)发现count的数量多一,发现算法包括o=0的情况
  • 解决方案:
    (1)在每一条判断语句后增加一条输出语句
    (2)改变变量o的for循环条件

题目2: 7-7 歌唱比赛评分系统

1. 本题PTA提交列表

2.设计思路

  • 第一,定义repeat=0,n=0,score,max,min,j=0,i=0,inter=0,分别表示评分的选手数量,评委数,分数,最高分,最低分,循环变量,中间存放变量
  • 第二,输入repret
  • 第三,令i=0,输入评委数,输入分数,令最大值等于输入的分数,
  • 第四,再输入一个分数,如果大于之前的最大值,则令最大值等于它,最小值等于之前的最大值,
  • 第五,否则令最小值等于它
  • 第六,令j=0,再输入一个分数,
  • 第七,如果分数大于最大值,则令中间变量inter等于最大值,最大值等于分数,分数等于中间值(即最大值与分数交换)j=j-1
  • 第八,如果小于最小值,则进行第七一样的操作,使得最小值与分数交换,j=j-1
  • 第九,分数总和total+=score
  • 第十,重复步骤六,直到j>=n-2
  • 第十一,输出total

3.本题调试过程中碰到的问题以及解决方案

(1)

  • 错误:答案错误,没有考虑到repeat
  • 解决方案“在输入repeat后f增加or(i=0;i<repeat;i++)循环

题目3: 7-6 猜算式?2*7?=3848中的数字(10 分)

算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。

1. 本题PTA提交列表

2.设计思路

  • 一,算法定义三个变量A,B,C分别表示个位数十位数,和它们的乘积
  • 二,如果(A10+2)(70+B)==3848,则输出结果,结束程序
  • 三,如果没有则令A加一,B等于零,
  • 四,在A的每一次改变时,B进行循环即从0到1进行判断
  • 五,如果(A10+2)(70+B)==3848,则结束程序,如果没有则重复步骤三
  • 六,令C等于((A10+2)(70+B)
  • 七,输出"(%d*%d=%d",A,B,C)

3.本题调试过程中碰到的问题以及解决方案

  • 当n=9时跳出循环

  • 每一次A改变,B都进行一次从1到9的循环

  • 当(A10+2)(70+B)==3848时跳出循环

二、同学代码结对互评

1.互评同学名称:王宵莹

2.我的代码、互评同学代码截图

  • 我的代码

  • 王宵莹的代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  • 总体看来,我与王宵莹的思路是一样的,都是让各个硬币的数量从可能的最大数进行循环减小直到符合条件结束输出
  • (1)不同:
  • 王宵莹:她主要采用了for循环语句
  • 我:也是使用了for循环语句但是多了if语句进行判断
  • (2)优势
  • 王宵莹:更为简洁,代码行数只有我的一半。
  • 我:思路条理更加清晰。
  • (3)
    我更喜欢王宵莹的代码风格,因为我们的思路是差不多的,但是她的要简洁的多。

三、截图本周题目集的PTA最后排名

四,本周的学习总结

1.你学会了什么?

-(1)学会了使用嵌套循环
-(2)有自己调了好几道题目,找到关于循环变量的问题,关于格式的问题,有时可能只是一个回车键

  • (3)在不断的失败与再失败中学会了耐心

2.本周的内容你还不会什么?

-(1)还是不会用使用电脑的思维方式,一道题目要思考好久
-(2)嵌套循环的部分题目还不会,听完老师讲后我还是不会,比如7-3 编程打印空心字符菱形还有7-5 梅森数
-(3)对于函数的运用

3.你碰到什么困难,打算如何解决?

-(1)看到题目后无法找到入手点,往往调试了好几个小时都得不出正确的答案,或者调试了好久后改变思路从头再来

  • 解决方案 :如果实在想不出思路,就上网百度或者向学长学姐请教,理解了正确的思路后自己再敲一遍代码

-(2)没有时间在电脑上做题
-解决方案 :看了题目后见缝插针地思考题目,在本子上记录下做题思路,回到宿舍后再在电脑上实验调试

  • (3)有些之前的题目过段时间就不会做了
  • 解决方案:对于之前的题目要注意复习,当然在做的时候就要认真做,留下印象,不要做无用功
原文地址:https://www.cnblogs.com/Zeng99/p/7798569.html