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

    这个作业属于哪个课程 C语言程序设计I
    这个作业要求在哪里 C语言I-2019秋作业08
    我在这个课程的目标是 熟悉使用while和do-while结构解决问题。
    这个作业在那个具体方面帮助我实现目标 在语句的学习上以及程序语言的回顾上帮助我实现目标。
    参考文献 百度百科

    一、PTA实验作业

    1、韩信点兵

    题目

    在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:

    • 按从1至5报数,记下最末一个士兵报的数为1;

    • 再按从1至6报数,记下最末一个士兵报的数为5;

    • 再按从1至7报数,记下最末一个士兵报的数为4;

    • 最后按从1至11报数,最末一个士兵报的数为10;

    请编写程序计算韩信至少有多少兵。

    数据处理

    数据表达:使用了整形变量n
    数据处理:使用了while循环结构以及if判断语句 ,用来判断是否与题目所说的士兵数相等
    伪代码:

    输入数据n;
    
    使用while语句一直循环;
    
    循环的同时使用if语句进行判断,只要满足清空便break跳出循环;
    
    否则变量n++继续循环;
    

    代码截图

    造测试数据

    输入数据 输出数据 说明
    本题无输入 2111 韩信至少有2111人

    PTA提交列表及说明


    因为在dev-c++上运行编译过许多次了,所以在PTA上直接过了。

    出现的问题

    Ⅰ无限循环

    因为疏忽,在12行的地方忘了Break,导致此程序无限循环。

    Ⅱ逻辑符使用错误&没有将n初始化

    在此程序中,个人觉得应该使用&&而不是&,但是不知道为什么在dev-c++上面用&也可以编译运行成功。

    n应该初始化。应该改成 int n=1;

    2、jmu-c-二进制转10进制

    题目

    输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出 error input!

    数据处理

    数据表达:输入测试数据
    数据处理:使用了while循环结构以及switch判断语句 ,用来判断 0,1 和非二进制数
    伪代码:

    输入数据n;
    
    使用while语句循环,并不断输入单个字符,如果遇到换行符(即回车)就退出;
    
    循环的同时使用switch语句进行判断,进行0、1计算和非二进制数停止;
    
    输出结果;
    

    代码截图

    造测试数据

    输入数据 输出数据 说明
    100 4 二进制转十进制为4
    1111 15 二进制转十进制为15

    PTA提交列表及说明

    出现的问题

    Ⅰ选择的方法不充分

    本来我是打算使用短除法的方法,进行反计算,推出十进制,但是似乎有问题

    于是我便采取正方向的当方法,如果是1就 n = n * 2 + 1; 0的话就n = n * 2 + 0 这样就好了

    2.代码互评

    同学代码

    自己代码


    这个同学的代码没有明显问题,逻辑通顺可正常执行并使用。但我觉得可在while()判断中加上输入检测,如:while(op=getchar()&&op!=' '),而不是执行了之后在进行停止检测。另外使用if-else并不简洁,可是要switch语句(因为在多情况判断中switch明显占优,所以采用通用方法)
    我的代码就直接在循环语句那儿设置while (ch = getchar(), ch != ' ')然后使用switch分支结构分两种情况讨论case'1':n = n * 2 + 1; break;
    case'0':n = n * 2 + 0; break;

    3.学习总结

    3.1学习进度条

    周/日期 周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第3周/10月6~16 3天 181行 if-else语句,递归,分段函数的计算 对这些还不是很熟练,对这些符号的使用跟空格的使用不是很清楚
    第4周/10月10~17 2天 181行 for循环语句与逻辑符 循环语句使用不够熟练,数学循环问题也有很多不明白的事情,不知道先后
    第5周/10月18~24 10h 148行 基本程序语言与生成乘方表与阶乘表 基本程序语言了解的都差不多了,有些不是特别熟练还是需要加强练习的,生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气,要查阅各种资料,可能跟我数学理解能力不强也有关系吧。
    第6周/10月25~31 22h 371行 多分支结构、字符型数据类型和逻辑运算符。顺便研究了几个心形的代码,觉得挺有趣。 就是有时候总是会丢三落四,然后也比较迷惑一些运算符使用方法,分之这一块还是不够熟练。
    第7周/11月1~7 25h 211行 熟悉多分支结构switch语句的使用、字符型数据类型和逻辑运算符。 迷惑的真的太多太多了,但是百度大发真不错,虽然没有白嫖别人的答案解释香,但是还是很有用,一学就让我停不下来的那种。对数学研究的还是不够好,所以做很多题目转不过弯来,要努力克服。
    第8周/11月8~14 22h 241行 熟悉使用while和do-while结构解决问题。 上课听的不太明白,课后也有查找资料,但是还是有很多不懂的,然后最近在做学习总结,想把自己不懂的都整理出来然后弄懂。

    3.2累计代码行和博客字数

    3.3学习内容总结和感想

    3.3.1学习内容总结

    3.3.2学习体会

    越学到后面越觉得自己什么都没学会,每次写代码都丢三落四的,不是少这里就是少那里,最近学习态度也不够好,应该好好反省自己了。花在学习上的时间也少了,然后虽然这几天学会了一些软件的安装,准备下周把系统安装学会,但是更应该在学习这些的同时把c语言学好。看了别人作业,很多人都会了数组,而我连上课学的东西都不能够熟练运用,内心有点难受呀也有点自责。但是这只能怪自己咯,不够努力,应该向他们学习的。要端正自己的学习态度,安排好学习的时间。就算0基础也相信自己可以学好的。下周要将所学的语句以及pta作业做一个总结,不希望自己只是说说而已。我觉得自己可以做到,一定可以。不能只做一个理论玩家,毕竟实践出真知。加油吧,继续努力。
    以后在写题的时候,可以先试着写一下流程图熟悉一下题目理清思路,然后再码代码。这样就不至于写的一团糟而且还让自己心烦了。

  • 相关阅读:
    【Sparse】关于__attribute__((bitwise)),__le32,__be32等的理解【转】
    设备树中ranges属性分析(1)【转】
    Linux内核API sprint_symbol【转】
    Linux内核--网络协议栈深入分析(二)--sk_buff的操作函数【转】
    浅析SkipList跳跃表原理及代码实现【转】
    关于kernel module签名【转】
    apt-get 更新指定软件_Linux系统 aptget 命令的使用:安装、更新、卸载软件包【转】
    如何挂载ubi文件系统【转】
    伙伴系统之伙伴系统概述--Linux内存管理(十五)【转】
    精确时间协议PTP研究【转】
  • 原文地址:https://www.cnblogs.com/wenwener/p/11863767.html
Copyright © 2011-2022 走看看