1.作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11495 |
我在这个课程的目标是 | 熟练的掌握和使用自定义函数 |
这个作业在那个具体方面帮助我实现目标 | 多次运用和实战以提高对自定义函数的理解程度以及运用能力,分析他人思路总结自己的问题 |
参考文献 | 算法竞赛入门经典训练指南 |
学号 | 20209031 |
2.PTA实验作业
2.1找出不是两个数组共有的元素
给定两个整型数组,本题要求找出不是两者共有的元素。
2.1.1
数据表达:定义出a[20],b[20],c[40]三个数组,m,n,i,j,k五个变量,mn对应两个数组的数量,ijk对应控制三个数组的下标变量.
数据处理:流程结构:定义变量,数组-->利用mn将数组填充-->遍历数组,将数组中对应不共有的元素放入第三个数组中-->第三个数组去重输出.
2.1.2
2.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10 3 -5 2 8 0 3 5 -15 9 100 | ||
11 6 4 8 2 6 -5 9 0 100 8 1 | 3 5 -15 6 4 1 | 题目所给测试 |
8 10 20 15 13 14 -1 3 2 | ||
3 1 2 3 | 10 20 15 13 14 -1 1 | 随机验证 |
2.1.4 PTA提交列表及说明
部分正确:第三个数组去重错误,只正确了共有一个的特殊测试点.
2.2 验证哥德巴赫猜想
题目内容描述:数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。
2.2.1
数据表达:自定义函数以判断素数,再定义一个函数以实现哥德巴赫猜想.主函数定义n,素数函数中定义i,哥德巴赫函数中定义p,q,n代表所要测试的数,i为控制循环的数,p,q为哥德巴赫猜想分离出来的两个数.变量全为整型数
数据处理:将n在主函数中输入,进入哥德巴赫函数,将n分离并判断分离的两个数是否为素数,此时的实现在素数函数中.判断之后回到哥德巴赫函数,如果满足则输出n的分离结果.
2.2.2
2.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
24 | 24 = 5 + 19 | 5为所有解中最小解,24 = 5 + 19 |
2 | 无 | 最小解为1,1不为素数 |
2 000 000 000 | 无 | 超出范围 |
2.2.4 PTA提交列表及说明
编译错误:忘记定义形式参数的数据类型
答案错误:哥德巴赫函数中的输出时忘记对应定义的变量
2.代码互评
别人的代码
自己的代码
总结
- 多数使用一次自定义函数,其余用主函数实现.
- 使用的for循环而不是while循环,脱离循环条件更明确.
- 直接将自定义函数放于主函数之前,减去了声明函数的步骤.
3.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
11/10-11/14 | 26小时 | 100 | 自定义函数 字符串 宏定义 | 不会用复杂的宏定义和字符串 |
11/2-11/8 | 26小时 | 850 | 数组 | 如何使用数组有效的解决问题 |
10.26-11.1 | 24小时 | 850 | 选择排序,冒泡排序 | 无 |
10.19-10.25 | 24小时 | 500 | 循环 | 无 |
3.2 累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第八周 | 1200 | 800 |
第九周 | 1800 | 1000 |
第十周 | 3452 | 2000 |
第十一周 | 5186 | 2100 |
3.3学习内容和总结感悟
3.3.1学习内容总结
本周进行了acm战队的测试,多次刷题并且反复总结后比起第一次测试还是有了很多的进步,对于数组的认识也清晰了一些,但是在数组的运用和数组思维逻辑方面还是不足够,循环方面也有了更加深刻的理解,例如while循环控制为死循环,另外控制脱离循环的条件,使用break以实现。对于接下来的学习目标还是放在 数组 字符串 循环 当中,这些知识对我我来说还是有很多不熟练的地方。
3.3.2学习体会
比较起最开始漫无目的的刷题,在总结之后的效果显得非常的明显,在学习过程也更加明确了以后的学习方法。C语言的魅力也在学习过程中逐渐显露,编程的趣味性更加让我钟意。在之后学习内容的过程中一定要努力做到善于思考 善于总结而不是毫无方法的接受,死板的理解。