C语言I博客作业09

折月煮酒 提交于 2020-02-22 04:31:51
这个作业属于哪个课程 C语言程序设计I
这个作业要求在哪里 作业链接
我在这个课程的目标是 熟练掌握C语言,能独立完成简单项目,毕业前想做出一个简单的游戏
这个作业在那个具体方面帮助我实现目标 熟悉break与continue的使用和区别
参考文献 作业评价标准

1、PTA实验作业

1.1换硬币

问题描述:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

1.1.1 数据处理

  • 数据表达:定义了5个整型变量,a,b,c分别表示5分,2分,1分硬币的个数,sum表示待换零钱值,count表示换法个数。
  • 数据处理:

    伪代码如下
    定义a,b,c,sum,count;
    输入数据sum;
    for(a=sum/5;a>0;a--)五分硬币个数
    {
    for(b=(sum-a5)/2;b>0;b--)两分硬币个数
    {
    for(c=(sum-a
    5-b2);c>0;c--)一分硬币个数
    {
    if(5
    a+2*b+c==sum)选出符合条件的方案
    计数器
    输出方案
    }
    }
    }
    输出方案个数
    return0;

    1.1.2 实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    13 见图 样例,正确
    88 见图 随机数,正确

    1.1.4 PTA提交列表及说明


  • 1、输出超限:for语句表达式二有逻辑错误,导致程序死循环,均改成>0后正确。
  • 2、答案错误:忘记换行了。
  • 3、编译错误:加printf换行时没加分号。

    1.2找完数

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

1.2.1 数据处理

  • 数据表达:定义了6个整型变量,m,n代表输入的数据范围,i1表示每一次输入的数据,i2是用来求因子的一个中介数,G表示完数数目,sum表示除本身之外其他因子之和。
  • 数据处理:

    伪代码如下
    定义m,n,i1,i2,G;
    输入取值范围m~n;
    for(i1=m;i1<=n;i1++)逐个处理数据
    定义并初始化值sum=0;
    for(i2=1;i2<i1;i2++) 开始找因子
    if(i1%i2==0)
    {
    sum=sum+i2; 累加所有因子之和
    }
    if(sum==i1) 判断是不是完数
    G++; 计数器
    printf("%d = 1",i1); 输出一个类似于表头格式
    for(i2=2;i2<i1;i2++)
    {
    if(i1%i2==0)
    {
    printf(" + %d",i2);输出每个因子
    }
    }
    printf("\n");换行
    if(G==0)
    printf("None");如果没有完数就输出None

1.2.2 实验代码截图


1.2.3 造测试数据

输入数据 输出数据 说明
2 30 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 样例,正确
50 4001 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 随机数,正确

1.2.4 PTA提交列表及说明


  • 1、当时忘了定义变量G。
  • 2、没有给G赋初始值,改为G=0后正确。

    2、代码互评

    同学代码

我的代码

  • 1、同样是循环语句,该同学用的for语句,而我用的while,方法各异,但是结果均正确。
  • 2、该同学以时间T作为判断for循环结束的标准,我以位移S判断是否结束while循环,该同学只用了一个for语句就完成了该题,而我还在while中嵌套了一个if-else语句,所以相比之下,他的更简洁,我的有些拖沓了,还可以进一步改进一点。

3、学习总结

3.1 学习进度条

日期 这周所花的时间 代码行 学到的知识简介 目前比较迷惑的问题
10/7--10/13 9+个小时 100+ 编写if-else语句,算术运算与赋值运算规则等 while语句的使用以及适用范围
10/14--10/20 8+个小时 190+ for的使用,if-else与for的组合使用 while与for的区别
10/21--10/27 6+个小时 340+ 定义函数与调用 对函数的定义与调用不熟悉
10/28--11/3 6+个小时 260+ if-else的镶嵌结构 用太多if-else会比较混乱
11/4--11/10 6+个小时 170+ switch语句的基本运用 switch与if-else的区别
11/11--11/17 6+个小时 120+ while语句的使用 什么是指针
11/18--11/24 6+个小时 90+ continue的使用以及其与break的区别 **什么是指针,长度可变数组与长度固定数组的区别和适用情况

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结


思维导图

3.3.2 学习体会

  • 答:1、本周学习了continue,以及它和break的区别,PTA的练习很好的促进了我掌握for语句的嵌套结构。
  • 2、临近期末了,心情有点小激动,很想得到自己满意的考试成绩,认可自己付出的时间与努力。
  • 3、学习是一场漫长的旅途,路人会时而激情澎湃,时而枯燥无聊,而学者,会在激情中沉着冷静,在枯燥时燃起斗志。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!