• 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语句时再读入数字,可能用自己的方法写的输入    
     语句会多一点
    

  • 相关阅读:
    小白安装使用Redis
    Mysql的Sql语句优化
    maximo入门----用户使用提要
    时不时刷刷BOSS 看看技术需求
    2019.7.10整理
    docker使用入门
    docker之windows安装&centOS安装
    HashTable学习
    Hashmap学习
    红黑树学习
  • 原文地址:https://www.cnblogs.com/linshuxin1761/p/9860145.html
Copyright © 2020-2023  润新知