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


    1.本章学习总结

    1.1思维导图

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

    1.2.1 学习体会

    通过本周的学习历程以及对作业的完成过程中发现知识越来越多、难度越来越大,也越发觉得预习的重要性。

    1.2.2 代码累计

    2.PTA总分

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


    2.2 我的总分:

    C练习--循环结构(单层):175分
    2018-c-循环的嵌套:115分
    总分:290分
    

    3.PTA实验作业

    第一题:单层循环,龟兔赛跑:乌龟速度3m/min,兔子速度10m/min,若兔子走的路程多于乌龟,那么休息三十分钟,反之,再跑十分钟,判断某个时间的胜利者是谁,或者是否是平局。

    3.1.1 算法分析

    输入想要判断的某个时刻
    a = 3,b = 9记录二者的速度
    int T = n / 90求出有多少个循环 
    int t = n % 90再求出最后一个循环到了哪个时刻 
    if-else 语句进行各个时间段路程判断 
    最后分情况输出
    在路程的计算上要加上T*270得出最后结果。 
    

    3.1.2代码截图

    龟兔赛跑代码截图

    3.1.3测试数据

    龟兔赛跑测试数据

    3.1.4 PTA提交列表及说明

    龟兔赛跑提交列表

    Q1:如何求出循环的标准?
    A1:计算出每一次的二者距离的差值(10*9-3*10),然糊兔子休息30分钟,乌龟:3*30。超越兔子,兔子猛追10分钟,9*10,差距:9*20-50*3,以此类推,求得90分钟一个循环(就是又回到最初的起点)。
    Q2:总路程咋算?
    A2:先求的循环次数,在进行讨论。乌龟赢或者平局好算:3*t+270*T;兔子赢:分情况讨论。
    

    第二题:嵌套循环,打印空心菱形:给出行数(一定为奇数)和首行字母,自上至中间那一行均进行字母递增,后面的递减(结果会是上下对称)。

    3.2.1 算法分析

    scanf("%c %d",&op,&high)输入首行字母和总共的行数 
    if(i == 1 || i == high)分情况讨论 ,此时为第一行和最后一行,因为这两行只用输出一个字母 
    for(int x = 0;x <= a - 1;x ++)当x<a的时候输出空格,相等时输出字母 
    当它不是第一行或最后一行时 ,此时要保持输出第几行的数字不变,记num = i。
    for(int x = 0;x <= high - a + num;x ++)输出第一个字母前空格的情况 
    if(x < a - num || x > a - num && x < high - a + num-1)输出两字母中间的空格的情况 
    end for
    if(x == a - num)输出第一个字母的情况,此时不用换行 
    if(x == high - a + num)输出第二个字母时,此时换行 
    end
    

    3.2.2代码截图

    空心菱形代码截图

    3.2.3测试数据

    空心菱形测试数据

    3.2.4 PTA提交列表及说明

    空心菱形提交列表

    Q1:怎么判断哪个时候该输出什么?
    A1:从示例以及自己的推算中慢慢找到规律并列出表达式,再通过if-else语句进行判断什么时候该输出空格还是字母;
    Q2:分情况的依据:
    A2:有特殊的存在,然后大部分还是有规律的,这个时候用数学方法得出表达式并用C语言表达出来。
    

    第三题:嵌套循环,餐饮服务质量调查打分:多次打分,并在每次打完分后清零以便下次再次打分,打分形式以“*”表示。

    3.3.1 算法分析

    int a,b,c,d,e;
    a = b = c = d = e = 0;//初始化数据,
    for(int x = 1;x <= cishu;x ++)//根据题目要求循环cishu次
    重置每次打分的人数 
     并重置每一个档次的人数
    if-else语句 进行数值记录
    a++,b++,c++,d++,e++ 
    最后输出* 
    当x == cishu 
    end  for;
    

    3.3.2 代码截图

    餐饮打分代码截图

    3.3.3测试数据

    餐饮打分测试数据

    3.3.4 PTA提交列表及说明

    餐饮打分提交列表

    Q1:repeat是什么意思,作用是什么?
    A1:大老解答:循环次数,要实现多次打分。
    Q1:答案都没错,循环次数也没错,提交总是不能拿满分?
    A2:在循环开始的时候,没有重置打分的人数
    

    4.代码互评

    4.1 代码截图

    同学代码:
    同学的餐饮打分代码截图
    我的代码:
    餐饮打分代码截图

    4.2 两者的不同

    *   思路相同:都是先记录各个档次打分的次数再进行输出  *  ;
    *   方法不同:同学使用了**数组记录**:先对数组前五项进行初始化,然后通过switch-case语句进行记录;
    我是使用五个字母初始化为零,通过if-else语句进行记录;
    *   输出时的方法不同:同学使用**循环输出**,非常简洁有效;而我的。。颓废式写法,依次写入,效率很低。向大佬学习!
    
  • 相关阅读:
    Java 传递参数时,传递一个变量快还是传递一个实体类?
    13 设计模式
    12 反射
    11.多线程&&并发
    10.输入输出
    9.异常Exception
    7.正则表达式
    5.数组
    6.常见对象
    上传本地项目到Github
  • 原文地址:https://www.cnblogs.com/yue7521/p/9855790.html
Copyright © 2020-2023  润新知