一,作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-3/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11423 |
这个作业的目标 | 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题 |
学号 | 20209186 |
二、本周作业
PTA实验作业
1.PTA实验作业(20分/题)
1.1 题目名1
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。
1.1.1数据处理
数据表达:用了全局变量整点型数组a,方便在三个自定义函数中使用。
数据处理:通过自定义 sheng(int n),jiang(int n),xian(int n)函数对输入的数据进行升降排序并运算得出相应结果
1.1.2实验代码截图
1.1.3 造测试数据
实验数据 | 实验结果 | 说明 |
---|---|---|
2222 | 2222 - 2222 = 0000 | 当输入的数组经过处理后相等就输出0 |
6767 | 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 | 当输入6767后经过处理可以得到数6174 |
1.1.4 PTA提交列表及说明
1.未考虑输入的数正序逆序相等的情况
2.对于数据的降序程序出错,得出的结果不对
1.2 题目2
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
输入在第 1 行给出不超过 10^5的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。
1.2.1 数据处理
数据表达:用了整点型一维数组a,对输入的数据进行桶排
数据处理:for(i=0;i<n;i++)
{
scanf("%d",&s);
a[s]++;
}(桶排)
1.2.2 实验代码截图
1.2.3 造测试数据
实验数据 | 实验结果 | 说明 |
---|---|---|
10 60 75 90 55 75 99 82 90 75 50 3 75 90 88 | 3 2 0 | 对学生成绩统计后得出75 90 88分的人数为3 2 0 |
3 90 100 99 1 97 | 0 | 对输入的学生成绩进行处理得到分数为97的人为0人 |
1.2.4 PTA提交列表及说明
1.一开始用嵌套循环造成运行超时,后改用桶排序,极大减少程序运行时间
代码互评
同学代码截图
自己代码截图
1.第一个同学的代码是将素数与回文判断放在一个函数里直接判断得结果,比我的更直接。
2.第二个则是自定义两个函数分别来判断素数与回文数,使主函数更精简
学习总结
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
4/5~12 | 1660 | 670 | 自定义函数 | 不太习惯用函数,但复杂一点的题用函数会更简洁 |
5 /13~19 | 1780 | 966 | string函数 | 字符串类型的题目 |
6/14~29 | 1811 | 990 | string函数 | 对于函数的使用还不够熟练 |
7/29~4 | 1888 | 999 | 桶排序,二维数组处理字符串 | 指针还不太会使用 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.感觉还有好多函数都没开始学,嗯呐呐。
2.思维锻炼真挺重要的说。