C语言C语言第四次于博客作业–嵌套循环

一律、PTA实验作业

问题1:编程打印空心字符菱形

1. 主题PTA提交列表

C语言 1

2. 规划思路(流程图)

C语言 2

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

  • 思考过程:将问题拆解为菱形问题同字母变化问题两有的
    1>先解决约菱形问题,需小心高度height为总高,并无是菱形边长。
    2>菱形分为上下两部分,空格和字符规律性变化。
    3>一个循环往复解决总高,再嵌套两个循环进入上下两局部。
    4>在左右两片段被,控制输出的空格个数与具象的字符。

  • 局部科学:第一软提交各一行的字母变换不正确。
    解决办法:利用循环变量i每次递增的特性要每次字母递加。

  • 嵌套顺序错误:应该是优先判断及直达半部分或者生一半部分,再判断是否该出口空格或字母。

  • 代码太过复杂:尤其是产一半部分的循环条件,并无是转怀念出去的,而是用DEV调试很多遍试出来的,花了特别丰富的年月,自己也非是怪知。感觉自己的代码缺少合理性,让丁看无亮堂,并无能够怪直观明确的体现来各种口径以及巡回。第一双眼观望此写道菱形不是异常不方便,但当起开起来的时刻发现字母变化才是困难,自己以在微机前研究了三四独钟头,才将约为出来。

  • 调剂过程:
    C语言 3

C语言 4

C语言 5

题目2:梅森数

1. 主题PTA提交列表

C语言 6

2. 统筹思路

  • 先是步:定义整型变量n,i,j放循环变量,result放输出结果
  • 其次步:输入正整数n
  • 其三步:if语句判断n。
  • 第四步:若n等于1,输出None
  • 第五步:若n大于等于2低于20,进入循环
  • 第六步:循环变量i赋值为1,循环条件为i小于等于n
  • 第七步:赋值result等于pow(2,i)-1
  • 第八步:进入下一个循环,j赋值为2,循环条件为j小于等于result
  • 第九步:进入if判断是否为素数,若result对j取余等于0,跳出循环。若j小于result/2且result不抵1,输出result.
  • 第十步:j递加,重复第九步。
  • 第十一步:i递加,重复第七八九十步。
  • 第十二步:循环结束。

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

  • 题目理解不成功:只关心到怎么算梅森数,忽略了它们是素数的前提,第一破的代码并没针对结果是否为素数的判断,导致DEV运行结果连会油然而生15,询问了同桌后查出要一口咬定素数。
    C语言 7

  • 一对是:取最好可怜值n和n等于2底测试点错误
    C语言 8
    解决办法:加入if语句对n等于2之尺度判断,可n取最酷价值的荒唐还是,并且不理解错在哪里。

  • 片科学:取最好可怜值n的测试点错误
    C语言 9
    解决办法:虽然于DEV上运行结果对,但PTA仍然显示有科学,后来以自我批评代码时,为了更加简洁将n等于2跟过2仅次于等于20联合起来,再付出答案就是对了。

  • 调节过程:
    C语言 10

C语言 11

C语言 12

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

1. 主题PTA提交列表

C语言 13

2. 计划思路

  • 首先步:定义整型变量
    n放成绩个数,max放最老价值,min放尽小价,repeat重复次数,i,j放循环变量
  • 第二步:定义双精度浮点型变量grade放成绩,total放到底成绩并施值0
  • 其三步:输入还次数repeat
  • 季步:进入循环进行repeat次运算 ,i=1,循环条件吧i小于等于repeat
  • 第五步:输入成绩个数与第一单成绩
  • 第六步:赋值total,max,min都也率先独成绩
  • 第七步:进入各个一样不行的数量的轮回,j=1,循环条件为j小于等于n-1
  • 第八步:读博下一个成绩
  • 第九步:用if语句比较max和grade的轻重缓急关系,若max小于等于grade,赋值max等于grade
  • 第十步:用if语句比较mim和grade的尺寸关系,若min大于等于grade,赋值min等于grade
  • 第十一步:赋值total等于total加grade
  • 第十二步:j递加,重复第八九十十同步
  • 第十二步:i递加,重复第五六七八九十十一十二步
  • 第十二步:输出成绩

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

  • 答案错误:这道题与第八题一样用repeat,刚开头掌握成对平组数进行repeat蹩脚计算,所以并没有将输入n值放入循环外,导致PTA答案错误

解决办法:将用输入n值放入第一独循环内。

  • 调剂过程:
    C语言 14

  • 格式错误:最后输出没有加\n,若用第二软计算,第二个n的输入位置于率先浅的结果后。所以格式错误。
    C语言 15

  • 调节过程:
    C语言 16

其次、同学代码结对互评

1.互评同学名称

杨峻森

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

  • 本人之代码
    C语言 17

C语言 18

  • 峻森的代码
    C语言 19

C语言 20

对比

  • 自我:
    这道题我于是了一百三十差不多实施代码,先用switch将相继阶段的数据为出来,再使用五单switch输出五只级次分别对应的星号。而峻森同学就所以了四十基本上行就描写出来了,主要的别在同出口时之那有,它非常好地利用上了巡回嵌套分别出口了不同等级对应之星号,而自己并没动用循环嵌套,而是第一时间想到了switch,而且后来再次拘留代码发现吗并不需要那么基本上switch语句来促成出口。这体现来了一个题材:我不够简化代码的力量,总是定性思维,不见面动用自各种语句的特征来简化代码,菱形那道问题也是平的,代码最后虽然是,但是循环体复杂难以理解,没有教师课上解答的简洁明了

  • 峻森:峻森同学的代码美遭欠缺也缺乏了诠释,而且变量名字为坏轻易。希望他能在大好的编程基础及再次加一点优质的习惯。成为又胜之程序员。

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

C语言 21

季、本周修总结

1.君学会了呀?

课本中

  • #### 函数的定义和利用:

    采取由定义函数时,需要函数声明,定义,调用,结果回到。
    函数声明:
    函数类型 函数名 (参数表); ps:函数声明是一律句c语言,以分行结束。
    函数定义:

    函数类型 函数名 (形式参数表)     /*函数首部*/
    {
      函数实现过程                             /*函数体*/
    }
    

    函数调用:
    函数名 (实际参数表)
    形参表:
    类型1 形参1 类型2 形参2······

  • #### 实参与形参:

  • 实参:主调函数的参数,可以为常量,变量,表达式。

  • 形参:调用函数的参数,必须为变量。
  • 关系:将实参的值单向复制给形参的长河变为参数传递。

  • #### 不回来结果的函数:

    函数类型为void,不直接返回一个价值。

  • #### 全局变量:

    概念在以函数外如果非属其他函数的变量为全局变量。解决了return语词只能回去一个函数结果的题材,实现了差不多套数中间的数量交流和代表。

  • #### 局部变量:

    概念在函数内部还是复合语句被的变量为全局变量。

  • #### 同名情况:

    有些变量和全局变量同名时,局部变量起作用。函数的部分变量和复合语句之有些变量同名时,复合语句被的起作用。

  • #### 静态变量:

    特之片变量。静态变量赋初值才当函数第一破调整用时由作用,若无赋初值,系统将机关赋值为0.

     static  类型名  变量表
    

    ### 做题中

  • #### 金字塔,菱形类打印题目:

    运用循环嵌套解决,重点查找来是化解空格,输出以及题材输入的关系式。菱形则用分为上下两部分来化解。

  • #### 循环内外语句:

    以PTA最后两开中,就待分清n值得输入在循环内还是循环外,及以哪一个巡回中。若没作明白,会促成循环卡住。

  • #### 画流程图:

    缓解了写算法无法发挥循环嵌套的题目。

  • #### 伪代码:

    学会了好先行勾勒伪代码,再因伪代码编写程序。

2.本周之始末,你还不见面什么?

  • 对于循环嵌套还不够了解,虽然就到题目集还是用循环嵌套会下意识用多再度循环,但要是是平常做题很容易忽略掉这种循环模式,而且这种嵌套式循环会出现多大仔细小之题目,例如循环内重新赋值,语句以循环内外的不比,循环条件的判断·····可能是今天代码还不够复杂,没会窥见嵌套循环的造福。
  • 针对口形类题目还不够熟练,还用多多练习。
  • 全局变量,局部变量,静态变量这三独就会识别计算,并无可知应用到好的代码里。