zoukankan      html  css  js  c++  java
  • C语言I博客作业08

    一、表格

    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9976
    我在这个课程的目标是 深入了解C语言,争取掌握更多的数据类型及结构,熟练地编译有效代码
    这个作业在那个具体方面帮助我实现目标 运用新的循环while结构来解决for循环解决不了的问题。
    参考文献 C语言程序设计、百度

    二、本周作业

    1. PTA实验作业

    1.1 题目名1

    输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!
    输入样例1:
    11111111
    输出样例1:
    255
    输入样例2:
    34
    输出样例2:
    error input!

    1.1.1 数据处理

    数据表达:字符型变量char(n)、整型变量int(sum),sum的初始值赋为0,n用于接收输入的值。
    数据处理:
    定义变量n放字符,sum用来放输出的十进制的数
    输入字符
    while(n!='
    ')
    首先判断输入是否是 回车,不是就进入循环
    if(n=='
    ')
    break;
    如果输入是 回车,就跳出
    if(n!='1'&&n!='0')
     printf("error input!");
    如果输入的不是二进制就 输出错误
    else
    sum=sum*2+n-'0';
    输入的是二进制,就计算其对应的十进制		
    输出十进制
    
    

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入 输出 说明
    11111111 255 验证题目数据
    34 error input! 验证题目数据
    10 2 简单的二进制

    1.1.4 PTA提交列表及说明

    • 部分正确: 输入值不是二进制字符时答案是对的,但是二进制答案就错了。我只在while上边有一个输入,while语句中最下边应该再有一个输入语句。

    1.2 题目名2

    一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
    这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
    输入格式:
    输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
    输出格式:
    在一行中输出蠕虫爬出井的时间,以分钟为单位。
    输入样例:
    12 3 1
    输出样例:
    11

    1.2.1 数据处理

    数据表达:整型变量int(N,U,D,t),N,U,D是输入的值,t的初始值赋为0.
    数据处理:
    定义N,U,D,t=0分别用来放需要爬的高度、上爬的高度、下滑的高度、和完成所用时间,
    输入需要爬的的高度、上爬的高度、下滑的高度
    while(N>0)
    判断需要爬的高度是否大于零,大于零则进入循环
            if(N>U)
                t=t+2;
    如果要爬的高度比一次上爬的高度大,则一次时间加两分钟
            else
                t++;
    否则加一分钟
            if(N>U)
            	N=N-U+D;
    如果要爬的高度比一次上爬的高度大,则计算还要爬的高度,一定要加上下滑的高度
            else
            	N=N-U;
    否则直接计算
    输出时间           
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入 输出 说明
    12 3 1 11 验证题目数据
    25 5 2 15 随机值
    45 8 3 17 随机值

    1.2.4 PTA提交列表及说明

    • 编译错误:换了while语句,没有再用数学公式,把N当成虫子还需要爬的距离来循环运算。
    • 部分正确:这也只是改进了数学公式,依然有一个测试点是错的。
    • 部分正确:只使用了if-else结构和简单的数学公式算的,没有考虑到复杂的情况。

    2. 代码互评

    自己代码①

    同学代码①

    评论:

    • 这道题我们的思路是一样的,但是方法有些不同,有两点不同的。
    • 第一点不同是她比我多设置了一个变量h,作为还需要爬的高度。而我是直接把N当成了要爬的高度。
    • 第二点不同是关于if-else的使用,她用了一个if-else把时间和剩下的高度一起表示。而我是用了两个if-else分别表示时间和距离。
    • 感觉同学的代码会更好一些,毕竟只用了一个if-else,两个变量同时计算。

    自己代码②

    同学代码②


    评论:

    • 这两份代码长度不太一样,我的较短她的较长。但我觉得该同学的代码比我的要好一些。
    • 该同学使用了三个if-else语句比我多一个,他先是设置了x=1的情况作为第一种输出,在最后进行判断输出。而我是直接在前面就输出了。
    • 以上两种不同的输出导致了输出接口不一样,我有两个输出接口,同学只有一个。单个输出接口比较好,不容易出错。

    3. 学习总结

    3.1 学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较困惑的问题
    1/9-21 2天 30 初步接触编程,学习编译Hello,World!
    2/9-30 2天 20 学习了浮点型变量,及温度转换
    3/9-15 3天 76 使用分段函数了解到if-else语句以及数据类型 对于定义数值还是不太清楚
    4/10-16 3天 100 for语句 for循环进行中不清楚循环的细节
    5/10-24 3 天 155 学习到了自定义函数 自定义函数的具体定义过程,实参形参有些迷惑
    6/11-1 3天 250 学习使用if-else与for语句的嵌套,初步了解了字符型变量 对于字符型变量不是很懂,不明白其作用
    7/11-7 2天 200 这周学习了新的分支结构switch结构,这也适用于选择的情况,其作用类似于if-else。 switch后面的变量表达式和case后的常量表达式弄不清。
    8/11-15 3天 150 学习了新的循环结构while语句和do-while语句,和for语句有不一样的地方,但其作用是一样的,他们循环的条件不一样。 不能熟练运用while语句去解决实际问题

    3.2 累计代码行和博客字数

    3.3 学习内容总结

    3.4 学习体会

    1. 这周学习了循环结构while和do-while语句,这个循环语句和for循环语句作用是一样的。但是他们的循环的条不一样,for需要有循环次数,while只要有循环终止条件即可。do-while是先运算一次,再进行判断是否执行。
    2. 这周知识感觉理解了,但是一做题就感觉不会用,所以这也可能是掌握的不是很彻底。在做PTA时感觉有些题挺难的,具体不知道怎末判断循环条件,也有不理解题意的原因。
    3. 随着学习的知识越来越多,现在感觉有些力不从心了。要调整好自己,再多刷些题来弥补自己的不足。
  • 相关阅读:
    年度回忆录(2012.102013.01)
    Java中的Annotation(1)三个基本Annotation
    Java7中的文件和目录管理Path类
    Struts1和Struts2核心控制器的执行原理
    java中的IO基础3
    动态代理(2)动态代理和AOP
    java中的IO基础
    《嫌疑犯x的献身》看完了。。。
    像NHibernate致敬ado.net entity framework的范型DAO和open session in view实现
    我的MBTI职业性格测试
  • 原文地址:https://www.cnblogs.com/wangxiana/p/11858252.html
Copyright © 2011-2022 走看看