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

    这个作业属于那个课程
    这个作业要求在哪里
    我在这个课程的目标是
    这个作业在那个具体方面帮助我实现目标
    参考文献

    1.PTA实验作业

    1.1换硬币

    将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
    输入格式:
    输入在一行中给出待换的零钱数额x∈(8,100)。

    输出格式:

    要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
    输入样例:

    13
    

    输出样例:

    fen5:2, fen2:1, fen1:1, total:4
    fen5:1, fen2:3, fen1:2, total:6
    fen5:1, fen2:2, fen1:4, total:7
    fen5:1, fen2:1, fen1:6, total:8
    count = 4
    

    1.1.1数据处理

    数据表达:

    定义了整形变量five,two,one,money,count。five,two,one分别为5分2分1分硬币的个数,money为输入的零钱,count为换的方法种类。
    

    数据处理:

    定义变量five,two,one来记录硬币的个数,money来放输入的零钱,count来计数换法个数
    
    输入零钱
    for  (five=money/5 ; five>0 ; five--)
    {
        for   (two=money/2 ; two>0;two--)
        {
            for  (one=money ;one>0;one--)
            {
                if   5*five+2*two+one=money  then   count++, 输出five,two,one,five+two+one  
            }
            end for
        }
        end for
    }
    end for
    输出count
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    10
    fen5:1, fen2:2, fen1:1, total:4
    fen5:1, fen2:1, fen1:3, total:5
    count = 2
    当money为10时
    20
    fen5:3, fen2:2, fen1:1, total:6
    fen5:3, fen2:1, fen1:3, total:7
    fen5:2, fen2:4, fen1:2, total:8
    fen5:2, fen2:3, fen1:4, total:9
    fen5:2, fen2:2, fen1:6, total:10
    fen5:2, fen2:1, fen1:8, total:11
    fen5:1, fen2:7, fen1:1, total:9
    fen5:1, fen2:6, fen1:3, total:10
    fen5:1, fen2:5, fen1:5, total:11
    fen5:1, fen2:4, fen1:7, total:12
    fen5:1, fen2:3, fen1:9, total:13
    fen5:1, fen2:2, fen1:11, total:14
    fen5:1, fen2:1, fen1:13, total:15
    count = 13
    当money为20时

    1.1.4 PTA提交列表及说明

    提交列表说明

    格式错误:忘记将输出换行,在输出的后面加了一个
    再提交就正确了
    

    1.2找完数

    所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
    输入格式:
    输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
    输出格式:
    逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
    输入样例:

    2 30
    

    输出样例:

    6 = 1 + 2 + 3
    28 = 1 + 2 + 4 + 7 + 14
    

    1.2.1 数据处理

    数据表达:

    我定义了整形变量m,n,i,sum,j,count,m和n为输入的范围,i,j用于控制循环,sum用于累加后的和,count为记录是否有完数
    

    数据处理:

    定义变量m,n来接收输入的范围,i,j来控制循环,sum来放累加后的数,count用于判断在输入的范围内有没有完数
    
    输入n~m的范围
    for(i=n;i<=m;i++)
    {
        sum=1;
        if  i=1  then continue
        for(j=2;j<i;j++)
        {
             if i%j=0  then sum+=j;
        }
        end  for
        if  sum=i then 输出sum 
        {  
    	for(j=2;j<i;j++)
        {
            if i%j=0 then  输出+j
        }
        end for
        换行
        count=1
        }
        end if
    }
    end for
    if   count=0   then   输出None
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    10 20 None 10到20内没有完数
    15 50 28 = 1 + 2 + 4 + 7 + 14 15到50内只有28一个完数

    1.2.4 PTA提交列表及说明

    提交列表说明

    部分正确:忘记定义一个计数器去判断是否有完数,后来将计数器加上,使得答案正确
    

    2.代码互评

    (孙梦姣)同学的代码

    我的代码

    1.她的代码利用两个for循环嵌套输出fen5和fen2然后再计算出fen1的个数再判断fen1>=1是否成立,然后输出各数然后计数器加一,最后输出种类数count。
    2.我的代码是利用三个for循环嵌套来分别输出five,two,one,然后判断乘以各值再相加是否等于输入的零钱,然后输出各数,然后计数器加一,最后输出种类数count。
    3.相比较之下,我的代码更好一些,因为再她计算fen1和判断的时候不容易让人理解她代码的意思。
    

    (彭杰)同学的代码

    我的代码

    1.他利用for2个for循环嵌套来输出平面字符,他有一个地方非常巧妙,就是用(m+1)/2来代替了判断四舍五入取整的过程。
    2.我是先判断是奇数还是偶数,如果为奇数四舍五入就得加1,然后在用2个for循环嵌套来输出平面字符。
    3.相比之下,他的代码比我要好,但是在理解程度上我的更为简单,各有各的优势
    

    3.学习总结

    3.1学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第六周 25小时 434行 常用的数学函数,if-else语句,for语句,自定义函数 自定义函数不会用一个算法来运算多个式子
    第七周 8小时 142行 二分支结构和用char输入字符 对于字符型的代码有点看不懂,getchar与putchar还不明白怎么运用
    第八周 12小时 343行 多分支结构,switch语句 switch语句用得有点混乱,搞不清什么时候该结束
    第九周 14个半小时 503行 自定义函数的用法,怎样用一个算法来运算多个式子 if语句的嵌套不明白是怎样分支的
    第十周 8个半小时 181 do-while,while循环语句和continue语句 continue不知道怎么去运
    第十一周 28个小时 1246 一维数组和二维数组的基本运用 数组用的不够熟练,老是犯错
    第十二周 10个小时 391 学会了整形数组字,浮点型数组和符型数组,学会了结构体struct的运用 struct的嵌套容易搞混变量
    第十三周 8小时 436 学会了混合结构体和结构体数组 指针理解不了

    3.2 累积代码行和博客字数

    时间 博客字数 代码行数
    第四周 645 0
    第五周 645 0
    第六周 1275 434
    第七周 2523 576
    第八周 3371 938
    第九周 5414 1441
    第十周 6930 1622
    第十一周 9584 2868
    第十二周 13222 3259
    第十三周 15483 3695

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    1.这周将数组学完了,并且将结构体学得也差不多了,但是指针还是一个坎,在这周我学会了用数组来输入输出字符串,并且将数组内相同的字符删掉,能够灵活的运用数组了。
    2.最近了解到许多同学是百度代码然后复制粘贴到pta上的,还有部分是模仿着写的。我认为当我们在模仿别人优秀的代码、优秀的算法的时候,我们也应该将它记下来。一定要站在巨人的肩膀上学习。但是我们的记忆能力是有限的,时间长了难免会遗忘,所以我们也可以去记一些笔记。
    3.我觉得老师上课的能抽一些人,而不是每个题目都让人自己上去,这样每次都是相同的几个人上去,其他的人就会放松自己,不去理解自己模仿过来的代码。

  • 相关阅读:
    jquery easy ui 1.3.4 窗口,对话框,提示框(5)
    jquery easy ui 1.3.4 布局layout(4)
    4.1 avd
    android sdk 安装排错
    推荐一个非常COOL的开源相册程序!
    JQuery LazyLoad实现图片延迟加载-探究
    Js和asp.net各自设置的cookie相互读取的方法
    js html5推送 实例
    给网页添加[回到顶部]和[去底部]功能
    Session赋值(备注)
  • 原文地址:https://www.cnblogs.com/b1356436060/p/11897107.html
Copyright © 2011-2022 走看看