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

一、PTA实验作业。

题目1:7-3 编程打印空心字符菱形

1.本题PTA实验结果

2.设计思路

  • (1)定义四个整型变量height,i,j,x。定义符号变量letter

  • (2)输入一个字符型变量letter和一个整型变量height

  • (3)计算'x=(height+1)/2'.

  • (4)执行循环,i赋值为1,输出空格,i++,直到i>x-1,输出letter并换行。

  • (5)执行循环,i赋值为1,letter++,在其中嵌套循环j=1,输出空格,j++,直到j>x-i-1,退出内循环。输出letter;在主循环中嵌套循环j=1,输出空格,j++,直到'j>2*i-1',退出内循环,输出letter并换行,直到i>x-1时,退出主循环;

  • (6)执行循环,i赋值为1,letter--,在其中嵌套循环j=1,输出空格,j++,直到j>i,退出内循环。输出letter;在主循环中嵌套循环j=1,输出空格,j++,直到'j>2x-2i-3',退出内循环,输出letter并换行,直到i>x-2时,退出主循环;

  • (7)如果x不等于1,执行循环,i赋值为1,输出空格,i++,直到i>x-1,退出循环;输出letter--并换行。

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

  • 碰到的问题:

    -  ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110172027934-2127429716.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110172050122-42392554.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110172533278-206016933.png)
    

当这样输出后,下半部分完全错误。而且当定义kong来记录空格的个数,正确的空格kong=1,而调试显示的是2.

  • 解决办法:将下方的i与j的范围改变,如图所示

题目2:7-4 换硬币

1.本题PTA实验结果

2.设计思路

  • (1)定义整型变量并赋值fen5=0,fen2=0,fen1=0,total=0,count=0,fee

  • (2)输入fee值

  • (3)执行循环,fen5=fee/5,fen5--,直到fen5<1时,退出循环。

  • (4)在其中嵌套循环,fen2=fee/2,fen2--,直到fen2<1时,退出循环。

  • (5)在(4)中循环中嵌套循环fen1=fee,fen1--,直到fen1<1,退出循环。

  • (6)在(5)中,如果'fen55+fen22+fen1==fee',输出fen5,fen2,fen1,total,并且count++;

  • (7)输出count,并换行。

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

  • 碰到的问题:

    - ![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110173235684-768077172.png)![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110173258106-238091844.png)应该是从大到小,但 输出的是从小到大。
    

题目上fen5=2,而图示为1。

  • 解决办法:如图所示改变。

题目3:7-5 梅森数

1.本题PTA实验结果

2.设计思路

  • (1)定义整型变量并赋值n,i,j,mei=0,result,x=0,r

  • (2)输入n

  • (3)执行循环,i=2,‘result=pow(2,i)-1’,如果x==0,输出result,且mei++,重新赋值x=0。i++,直到i>n,退出循环。

  • (4)在其中嵌套循环,j=2,j++直到j>result-1,退出循环。

  • (5)在(4)循环中,‘r=result%j’,如果r==0,x=1,并推出该循环。

  • (6)如果mei==0,输出None。

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

  • 碰到的问题:

    • 本应该输出3,它却直接跳过判断;
    -![](http://images2017.cnblogs.com/blog/1232112/201711/1232112-20171110175818684-2138582175.png)当r!=0时会一直输出result,导致结论错误;
    
  • 解决办法:将x!=0改为x==0,continue改为break,重新定义一个变量来表示当变量某一值成立时再输出result;

二、同学代码结对互评(2分)

1.互评同学名称。

  • 7-3:陆勇治

  • 7-4:崔志彬

  • 7-5:陆勇治

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

  • 7-3:

    • 他的;

    • 我的。

  • 7-4:

    • 他的;
    • 我的;
  • 7-5:

    • 他的;

    • 我的;

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

  • 7-3:

    • 不同:变量赋值不同。

    • 优势:他有代码缩进。我的看着比较舒服。

    • 我更喜欢:他的。

  • 7-4:

    • 不同:变量赋值不同,他有注释。

    • 优势:他的比较容易理解解读;我的变量赋值比较容易辨认。

    • 我更喜欢:他的

  • 7-5:

    • 不同:变量赋值不同

    • 优势:他的更容易理解。

    • 我更喜欢:他的

三、截图本周题目集的PTA提交列表及最后排名。

1.PTA提交列表








2.PTA排名

四、本周学习总结

1.你学会了什么?

嵌套循环可以较快解决一些类似于找素数并将他们直接输出。了解到函数的基本用法,和有关auto,和static定义变量的规则,还知道了,局部变量和全局变量的意义和优先级别。

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

函数的使用。比如用了函数,但感觉比不用函数麻烦了很多。尤其是自定义了两三个这样的函数,通常写的代码也有30几行,感觉十分不简便,而且不会将他们简便化。还有同学说自定义的函数可以结合起来用,但我不会。

posted @ 2017-11-10 18:04  烦呢,还要起名字  阅读(321)  评论(2编辑  收藏  举报