C语言博客作业---嵌套循环

一、PTA实验作业

题目1:打印九九口诀表

1.本题PTA提交列表

2.设计思路

  • 第一步:定义三个整形变量i,j,n,s,j表示第一个乘数,i表示第二个乘数,n表示乘法表的阶数,s表示乘积
  • 第二步:输入n
  • 第三步:j=1
  • 第四步:i=1
  • 第五步:计算s=i*j
  • 第六步:输出i*j=s,同时指定s的输出宽度为4
  • 第七步:i++
  • 第八步:重复第五步,直到i>j
  • 第九步:输出换行符
  • 第十步:j++
  • 第十一步:重复第四步,直到j>n

3.本题调试过程碰到问题及解决办法

调试过程:








题目2:梅森数

1.本题PTA提交列表

2.设计思路

  • 第一步:定义四个整形变量n ,num ,count , tmp,n存放输入的次方数,num用于存放2的n次方减一的值,count,tmp用于循环
  • 第二步:count=1,tmp=1
  • 第三步:输入n
  • 第四步:当n=1时,输出None,并结束程序
  • 第五步:计算num=pow(2,count)-1
  • 第六步:判断num是否为素数,若为素数,输出num
  • 第七步:count++
  • 第八步:重复第五步,直到count>n

3.本题调试过程碰到问题及解决办法

  • 碰到问题:判断素数过程中,if(tmp>sqrt(num)) printf("%d\n",num); if条件写成(tmp>sqrt(num)+1),导致输出结果全为空

  • 解决办法:通过监视变量的值计算后发现问题
    调试过程:

题目3:歌唱比赛评分系统

1.本题PTA提交列表

2.设计思路

  • 第一步:定义七个整形变量max,min,repeat,mark,n,i,j,repeat存放评分次数,mark存放每次成绩,n存放每次评分的成绩个数,i j用于循环次数,max min分别存放最大值最小值
  • 第二步:定义一个 双精度浮点变量score用于存放平均成绩
  • 第三步:输入评分次数repeat
  • 第四步:i=1,j=1
  • 第五步:score=0
  • 第六步:输入评分个数n和第一个成绩mark
  • 第七步:score=mark,max=mark,min=mark
  • 第八步:输入下一个成绩mark
  • 第九步:score=score+mark
  • 第十步:如果min>mark,min=mark
  • 第十一步:如果max<mark,max=mark
  • 第十二步:重复第八步,直到i>=n
  • 第十三步:计算score=1.0*(score-max-min)/(n-2)并输出score

3.本题调试过程碰到问题及解决办法

  • 碰到问题:每次评分完成没有令score=0,导致下一次评分score有初始值
  • 解决办法:每次循环开始令score=0
  • 发现问题的调试过程:
    假设repeat=2,第一轮循环结束后

    此时score不等于0,导致结果第二轮出现错误

二、同学代码结对互评

1.互评同学:朱杰伟

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

题目:梅森数

我的代码截图:

互评同学代码截图:

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

  • 不同:对于评分个数n的输入,我只有一句代码,朱同学有两句;朱同学有对repeat和n的范围的限定,我的没有

  • 各自优势:朱同学的代码更加严谨,他对repeat和n的范围有加判断条件,我的代码里没有,这样PTA虽然过了,可特殊情况没有考虑到;我的代码更简洁,朱同学的代码中有一些可以删减的,如将 scanf("%d",&n);放进repeat的循环中,就不用if(j>=2)的判断

  • 更喜欢哪种风格:喜欢我们两的有点结合起来的代码,这样及严谨又比较简洁不繁琐。

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

四、本周学习总结

1.本周你学会了什么

  • 通过本周的PTA作业我对嵌套循环的应用更为熟练,上周的时候只会用for进行循环,这周也有用while。通过调试明白了嵌套循环的整个过程,能较为清楚的明白嵌套循环的过程
  • 对于本周的新知识函数也有了初步了解,对于函数中的形参,实参,声明,定义能够分辨出
  • 本周PTA主要错误点:判断条件有问题,出现死循环;运用到多个嵌套循环时,内循环的变量有时忘记区分,导致错误;
  • 本周PTA注意点:嵌套循环中涉及的变量会很多,特别是用于循环的变量,有的时候一开始忘了注释,导致自己都不好区分,或者写着写着发现还需要变量,又临时添加,前者是变量名以及排版的问题,后者是算法不清楚的问题,这两个问题都需要注意并改正
  • 通过本周PTA的作业,做完后回过来再看时,会发现有很多地方可以更简洁,下次写代码时要尽量写的简洁一些。

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

  • 本周PTA最后一题有一些不明白的,循环中有些内容只输出一遍,有的要循环多遍,对于这类的问题不怎么会,只会用一个if条件输出只输出一遍的,然后在进行循环,不会用嵌套循环进行输出
  • 对于本周新的函数知识点中,对于函数的作用域和生存期的概念弄混淆,不是很理解
posted @ 2017-11-08 21:52  嘿嘿渣  阅读(513)  评论(6编辑  收藏  举报