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

一、PTA实验作业

题目1:打印九九口诀表

1.本题PTA提交列表

2.设计思路

  • (1)定义三个整形变量n,j,i,n表示任意给定的正整数。
  • (2)输入一个正整数n。
  • (3)令i=1,i<=n,i++。
  • (4)令j=1,j<=i,j++。
  • (5)输出(“%d%d=%-4d",j,i,ji)。
  • (6)执行循环4、5。
  • (7)执行循环4、5、6。
  • (8)输出”\n"换行。

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

这题主要是格式上的错误,题目要求每条式子间要空四个空格,我在输出语句后空了四个空,输出结果明明和答案一样,但老是不通过。最后通过问同学才知道在后面加空格可以用“%-4d”这个形式来实现。

题目2:梅森数

1.本题PTA提交列表

2.设计思路

  • (1)定义一个整形变量n,i,j,number,count=0,x。number表示用户输入的数字,用来记录number能被整除的次数,count用来记录梅森数个数。
  • (2)输入整数n。
  • (3)令i=1,x=0,number=pow(2,i)-1。
  • (4)如果number!=0,令j=2,如果number%i==0,count++。
  • (5)执行循环3,每循环一次j++,直到j<number。
  • (6)如果x=0,则输出number,count++。
  • (7)执行循环3、4、5、6。
  • (8)如果count=0,输出None。

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

本题主要是在打代码时忽略了x在循环中的变化,我把x=0放在两个循环的外面,通过下图中的段点监测x,我发现当结束第二个循环时,x仍保持为3,而不是0,然后我把x=0放在第一个循环和第二个循环间,终于得到正确答案。

题目3:餐饮服务质量调查打分

1.本题PTA提交列表

2.设计思路

  • (1)定义整形变量repeat,i,j,n,mark,count1,count2,count3,count4count5,a。
  • (2)输入整数repeat。
  • (3)令j=1,count1=count2=count3=count4=count5=0。
  • (4)输入整数n。
  • (5)令i=1,输入整数mark。
  • (6)如果mark=1,count++,如果mark=2,count2++,······
  • (7)执行循环5,6,i++,直到i<=n。
  • (8)输出"1:"。
  • (9)令a=1,输出"*"。
  • (10)执行循环9,每次a++,直到a<=count1。
  • (11)输出"\n"换行。
  • (12)分数2、3、4、5与8、9、10、11步骤相同。
  • (13)执行循环,3、4、5、6、7、8、9、10,每次j++,直到j<=repeat。

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

这题是最复杂,代码最长的一题,所以犯了很多的错误,其中最主要的是犯了和第二题类似的错误,在定义count1=count2=count3=count4=count5=0时,我把它放在了循环外面,虽然输出答案和题目一样,但把repeat改为2时,输出就有了错误。最后把count1=count2=count3=count4=count5=0放在循环内,解决了这个问题。

二、同学代码结对互评

1.互评同学名称

黄毓颖

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

我的代码

互评代码

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

我和她的代码大部分是相同的,不同的只有判断是否是素数这一部分。
她的优势:比较简洁,比我少定义了一个变量。
我的优势:比较容易看得懂,只要那个数不能被任何数整除,就是素数。
我更喜欢她的风格,因为她的比我少定义一个变量,不容易出错。

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

PTA排名

三、本周学习总结

1.你学会了什么?

在本次的嵌套循环的PTA作业中,我学会了用断点调试来监测变量,通过变量的异常找出问题,我觉得在写循环题型的代码时监测变量是发现代码问题的很好的办法。之前一直不用这个方法,觉得太麻烦了。但在这次作业中它真的帮我找出了很多错误,以后我会试着多用这个方法来找错误。

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

不太会那种输出特殊形状排列的题,例如 那个编程打印空心字符菱形的题目,完全没思路,找不到规律。还有有些题嵌套循环太多的话就感觉无从下手。

posted @ 2017-11-11 22:02  梁才玉  阅读(463)  评论(2编辑  收藏  举报