0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
1.2 本章学习体会
学习感受
代码量统计
2.PTA实验作业
2.1 PTA题目1
2019-c10-指针 6-9 合并两个有序数组(2) 要求实现一个函数merge,将元素个数为m的升序数组a和长度为n的升序数组b合并到数组a,合并后的数组仍然按升序排列。假设数组a的长度足够大。
2.1.1 伪代码
void merge(int* a, int m, int* b, int n) 定义循环变量i, j, k, 并赋值i = m - 1; j = n - 1; k = m + n - 1; 定义指针c int *c 申请空间c = (int*)malloc((m + n) * sizeof(int)); while i >= 0 && j >= 0 if a[i] > b[j] then c[k--] = a[i--]; else c[k--] = b[j--]; while i >= 0 c[k--] = a[i--]; while j >= 0 c[k--] = b[j--]; for i = 0 to m+n-1 do a[i] = c[i]; free(c);
2.1.2 代码截图
2.1.3 造测试数据
2.1.4 PTA提交列表及说明
Q1:编译错误 A1:编写代码时忘记加分号 Q2:部分正确 A2:一开始没有看清楚题目,以为是两个函数,所以一开始做的方法是直接将b数组连接到a数组后方,在第二个函数输出是再开始排序,后来发现只用一个函数,于是改用循环比较大小开始重构a数组,但是当n很大时就会超时。 Q3:全部正确 A3:林丽老师讲了之后,我尝试用逆着输出,思路与林丽老师的差不多,定义了一个*c,申请动态空间是为了防止越界,从大的开始往前赋值,最后将c数组的值重新赋给a数组,完成题目。
2.2 PTA题目2
2.2.1 伪代码
2.1.2 代码截图
2.1.3 造测试数据
2.1.4 PTA提交列表及说明
2.3 PTA题目3
2.3.1 伪代码
2.3.2 代码截图
2.3.3 造测试数据
2.3.4 PTA提交列表及说明
3.阅读代码:
代码功能
代码优点