C语言博客作业02循环结构

1.本章学习总结

1.1 思维导图

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

  • 本章所学习的循环结构相比于分支结构难度更加大了,在PTA刷题中遇到的问题变得更多了,比如多重循环中括号应该括到哪里,对于我来说需要费力的思考,有时还不一定对,还需要多次的调试,但也因此对于如何进行调试有了更深入的理解,看书也很重要,有一些PTA题目在没有头绪的情况下,看看书,有时就会找到一点思路。
  • 这几周学习的代码量并不够,PTA写得磕磕绊绊的有时候还会经常忘记取地址符这种低级问题,下一周一定要每天增加40分钟写代码的时间。

1.2.2 代码累计

2.PTA总分(2分)

2.1截图PTA中循环结构2次题目集的排名得分

2.2 我的总分:

115+175=290

3.PTA实验作业(6分)

从PTA题目集中选3题你最满意的题目,题目选难度越大,分值越高。单层循环和循环嵌套题目都要有。每题2分,做如下内容:

3.1 PTA题目1

3.1.1 算法分析

设置变量time时间,distance1是兔子的路程distance2是乌龟的
兔子的休息时间restTime,跑步时间runTime
输入时间
for i to time do
  if runTime == 0 then
  runTime = 10;
    if distance1>distance2 then
    restTime = 30;
    end if
  end if

  distance2 = 3+distance2;乌龟从开始到最后都在跑
 if  restTime == 0 then
 distance1 = 9+distance1;兔子休息完毕 ,开始跑 
 runTime--; 
 end if

  if  restTime>0 then
  restTime--; 兔子还在休息 
  end if
 end for

if distance1<distance2 then  (开始判断距离 )
printf("@_@ %d",distance2); 
end if
同上

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

q:对于还没跑完十分钟,时间就结束问题
a:可以每一分钟进行计时,每少一分钟减一

3.2 PTA题目2

3.2.1 算法分析

设置变量n为行数,i,j用来循环,num用来代替n
ch用来输入字母
输入字母,行数n
for i to n do
for(j to fabs(n/2+1-i) do   用fabs函数进行上半部分与下半部分的统一
 printf(" ");对于空格的控制
 end for
 num=i;
  if  i>n/2+1 then
      num=n+1-i;形成对称
  end if

     for j to 2*num-1 do

    if j==1||j==2*num-1 then 挖空
       输出字母
           end if
 	        else
       输出空格
       end else
printf("\n");每循环一次换行
end for

3.2.2 代码截图

3.2.3 测试数据

3.2.4 PTA提交列表及说明

q:对于如何实现既有空格又有字母
a:可以刚开始全是字母,再用if语句进行判断

3.3 PTA题目3

3.3.1 算法分析

设置变量i,j,k用来循环,score输入的评分
repeat总循环次数,n评价个数
输入总循环次数
for  i to repeat do
  输入评价个数
 star1=0;star2=0;star3=0;star4=0;star5=0;每次循环结束重新计数
    for j to n do

    输入的评分

    switch(score)进行计数
      case 1:star1++;break;
     其余同上
    end switch
    end if


    输出1:
    for k to star1 do
    输出*
    换行
    从1到5皆如上
end for

3.3.2 代码截图

3.3.3 测试数据

3.3.4 PTA提交列表及说明

q:关于按照题目提供数据并未发现问题但出现格式错误
a:多用几组数据进行测试,比如发现两次查询时“5:”与第二次查询同一行,没有换行

4.代码互评

从同学中找一篇优秀代码,和自己写的代码比较下,说明下自己和同学代码区别,各自优势是什么?

4.1 代码截图

  • 同学代码截图

  • 自己的代码截图

4.2 二者的不同

1.return 0 的巧妙运用
同学巧妙运用return 0 使程序输出Error后结束,而自己运用break,还需进行下一步的判断
2.字符判断的方式不同
同学的“=”符号放在while语句内判断,而自己的所有符号皆放在switch语句内判断,比较统一
3.输入的位置不同
  同学的一次循环可以读入一个数字一个运算符,而自己在循环前输入数字,循环时再读入运算符,使用switch语句时再读入数字,可能用自己的方法写的输入    
 语句会多一点

原文地址:https://www.cnblogs.com/linshuxin1761/p/9860145.html