zoukankan      html  css  js  c++  java
  • C语言|博客作业09

    问题 回答
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 作业要求
    我在这个课程的目标是 快速的敲代码,制作出能使用的小软件
    这个作业在那个具体方面帮助我实现目标 熟悉break、continue的使用和使用循环的嵌套解决问题
    参考文献 百度,《C语言程序设计》

    1.PTA实验作业

    1.1题目1

    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

    1.1.1数据处理

    数据表达:用int定义了整形变量m,n,i,j,sum,count,其中m,n是题目规定的输入,i与j用来进行循环运算,i代表完数,j代表完数的因子,sum用来判断i是否为完数,count用来判断有没有完数
    数据处理:

    for(运用i=m;i<=n;i++循环找出m到n之间的完数)
    {
       每次i的循环sum赋初值1
       for(运用j=2;j<i;j++循环找出完数i的因子)
       if(运用i%j==0判断j是否为i的因子)
       sum=sum+j将所有因子的和加起来
       if(sum==i判断i是否为完数)
       {
           如果是则输入i=1
           for(继续用循环j=2;j<i;j++找完数i的因子)
           if(i%j==0判断j是否为i的因子)
           如果是则在输入i=1的基础上依次加上因子j
           每输出一个完数换一次行
           有一个完数则count+1
       }
    }
    if(count==0判断是否m到n之间是否有完数)
    没有则输出None
    
    1.1.2实验代码截图

    1.1.3 造测试数据
    输入 输出 说明
    20 50 28 = 1 + 2 + 4 + 7 + 14 20到50之前有完数28且因子为1,2,4,7,14
    10 20 None 10到20之前没有完数
    10 100 28 = 1 + 2 + 4 + 7 + 14 10到100之前有完数28且因子为1,2,4,7,14
    1.1.4 PTA提交列表及说明

    说明
    1.多种错误:输出的格式没有按题目要求打空格导致出现格式错误,sum的赋值我在定义变量时便赋予了1,而不是在i的循环后面赋值,导致出现了答案错误,将None打成了NONE也是我的一个答案错误,起初这些错误我都没发现,到了上机课时正好做了一道类似的改错题才知道,原来sum如果在定义时就赋值1,则后面sum的值会一直累加,而按我的意思是要在每次i进行一次循环时,sum的初值都为1,所以应该在i循环的后面再给sum赋值,而格式错误是被同学告知的
    2.部分正确:改正了上述的错误后还是没有发现NONE的错误,是在后来重新与题目仔细对比才发现的,我每周的作业总会犯一些这样的小错误,都是没有认真看题目的原因,以后应该积极改正

    1.2 题目2:

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

    1.2.1 数据处理

    数据表达:用int定义了整形变量N,i,j,用char定义了字符c,其中N与c是题目规定的输入,i与j分别用来进行列与行的循环运算
    数据处理:

    if(N%2==0如果N是偶数)
    {
       for(i=1;i<=N/2;i++统计行的数量)
       {
           for(j=1;j<=N;j++在每一行的基础上统计列的数量)
           按照列的数量列出字符c的个数
           每一行列完后进行换行
       }
    }
    if(N%2!=0如果N不是偶数)
    {
       for(i=1;i<=(N+1)/2;i++这里我是运用(N+1)/2的方式进行题目要求的对行数进行四舍五入的运算)
       {
          for(j=1;j<=N;j++在每一行的基础上统计列的数量)
          按照列的数量列出字符c的个数
          每一行列完后进行换行
       }
    }
    
    1.2.2 实验代码截图

    1.2.3 造测试数据
    输入 输出 说明
    5 x xxxxx
    xxxxx
    xxxxx
    x组成的5×3的正方形
    4 d dddd
    dddd
    d组成的4×2的正方形
    3 b bbb
    bbb
    b组成的3×2的正方形
    1.2.4 PTA提交列表及说明

    说明
    答案错误:对字符的知识不熟悉,仅知道定义字符用char,输入字符可以用getchar,对字符的输入和输出还是不了解,依旧用的%d进行的输入和输出,导致出现了答案错误,后来是在机课上问了助教才知道要用%c

    2.代码互评

    同学代码截图

    自己代码截图

    1.该同学用了一个if来判断当i为1的情况,此时跳过下面的循环,即他想说明1不是完数,但其实这一步是多余的,因为题目给出的范围是1<m≤n≤10000,可能这位同学没有仔细的看题目,但是代码更加的谨慎
    2.该同学在代码上的格式要求做的比我到位,我是尽量的简洁了我的代码量,而他是按照老师的要求写的代码,我应该向他学习
    同学代码截图

    自己代码截图

    该同学的代码我开始是没看懂的,他的代码对我来说比较生疏,是在进行四舍五入的运算时与我的不同,他是先用浮点型变量q进行行数除2的运算后再加上0.5赋值给整形变量a,这样计算出来的结果与我(N+1)/2的结果是一样的,他将运算变的复杂了一点

    3.学习总结

    3.1 学习进度条

    周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周 5h 20 学会了怎样用PTA进行写代码作业,了解了一些关于软件工程专业的知识 不知道代码有什么用,对markdowm语法不怎么了解
    第二周 5h 20 基本学会了markdowm语法,知道以后要怎样向别提问 对许多学过了的代码还是不知道怎么用
    第三周 10h 60 学会了编写复杂一点的代码,开始懂得去阅读别人的代码 写代码时总是会出现编译错误,而且自己找不到错在哪里
    第四周 6h 68 学会了怎样使用for语句进行代码的循环运算 不能快速的想出表达式子的代码
    第五周 20h 178 学会了如何使用调用函数,如何制作思维导图 不能使用代码做比较困难的作业, 比如此次的哥德巴赫题目
    第六周 20h 187 初步了解字符型变量,学习了镶嵌结构 字符型变量的运算不是很会
    第七周 15h 148 多分支结构switch语句的使用 对switch语句的用法还是不熟悉
    第八周 15h 143 学会了如何使用while和do-while结构解决问题 for语句和while语句区别和使用范围
    第九周 10h 128 学会了break、continue的使用和使用循环的嵌套解决问题 使用循环的嵌套时还是不熟悉循环截止的条件和执行语句的输出

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    1.这周的pta练习比上一周的相对简单一点,我完成的速度不快但也全部弄懂了
    2.机课上的学习内容我能更加快速的完成,基本一节课我就完成了老师布置的作业,还有多余的时间留给我做题目
    3.理论课上学习了continue的语法,但是作业上并没有要用到continue的题目,可能到了下次要用时还是会不熟练

  • 相关阅读:
    Android Framework 学习(八):屏幕刷新机制
    Android Framework 学习(七):Service启动原理
    Android Framework 学习(六):UI线程概念
    Android Framework 学习(五):Activity 启动流程
    Android Handler 机制(六):如何检测性能卡顿
    Android Handler 机制(五):ThreadLocal的工作原理
    Android Framework 学习(四):Binder机制与代理模式
    Android Framework 学习(三):Android 跨进程通信机制
    Android Handler 机制(四):屏障消息(同步屏障)
    Android Handler 机制(三):Handler 机制与管道 Pipe 机制
  • 原文地址:https://www.cnblogs.com/wangwenzhi/p/11910556.html
Copyright © 2011-2022 走看看