C语言I博客作业09

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11637
这个作业的目标 <回顾已学得到的知识,记录自己存在的问题,并寻找解决的办法。>
学号 <20209044>

1.PTA实验作业(20分/题)

排名图片

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分)

1.1特立独行的幸福 (25分)

对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数的个数。如果这个数还是个素数,则其独立性加倍。例如 19 在区间[1, 100] 内就是一个特立独行的幸福数,其独立性为 2×4=8。另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 29 迭代得到 85、89、145、42、20、4、16、37、58、89、…… 可见 89 到 58 形成了死循环,所以 29 就不幸福。

本题就要求你编写程序,列出给定区间内的所有特立独行的幸福数和它的独立性。

1.1.1数据处理

数据表达:定义整型变量z[10000], y[10000], x[10000], i, a, b, c, d, e, f, g, h, j, count, flag,k。静态数组在z【10000】为答案数,x【10000】为其独立性,其余为中间值。

数据处理:首先输入数据a,b范围。定义函数fact为判断素数函数,第一个for循环将所有[a,b]区间内的幸福数找出来,存进数组z[10000]中,同时在这个循环里面用fact判断素数计算其独立值,这里无限循环判定为循环次数大于20次。第二步是在再行一次for循环,每个值都有迭代的中间值,将其中间值大于a,小于b的存于数组y[10000]里面,然后判断z[count]是否等于y[count],若不等于,则输出z[count],x[count]。这里用个k计算次数,如果k==0,则[a,b]范围内没有独立幸福数,输出SAD。

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 数据说明
10 40 19 8 23 6 28 3 31 4 32 3 题目样例
110 120 SAD 没有独立幸福数
170 190 176 3 188 4 190 4 正常输入

1.1.4 PTA提交列表及说明!

前面编译一直都没有将静态数组赋值对。

程序数组段错误,数组1000个太小了,要10000个。

1.2 6-1 统计某类完全平方数 (20分)

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

1.1.1数据处理

数据表达: 定义整形变量a, b, c, d, i,flag,count,e,f。flag为返回值,i用来储存N,其余为中间值。

数据处理:先判断是否大于99,若大于则用while计算其位数,然后用两重for循环判定其是否为完全平方数。

1.2.2实验代码截图

输入数据 输出数据 说明
105 500 cnt = 6 题目样例
1 2 cnt = 0 没有一个数
-3 -9 cnt = 0 负数

1.2.4 PTA提交列表及说明!

1.判断有位数中有两位数相等时for循环的条件错了。

2.if没有打双等于导致答案错误。

2.代码互评(5分)

找2份同代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。

自己代码

同学1

用的数组储存变量,用if语句判断输出1,还是0.代码十分简洁。

同学2

.和我的不同,暴力破解,没有用循环直接一个个扣位数,再一个个比较,不是特别简巧。

3学习总结

3.1学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
10/18——10/22 18h 490 printf(),scanf()的用法,if-else的用法
10/22——10/29 20h 620 for循环
10/29——11/3 15h 436 自定义函数
11/2——11/8 19h 560 自定义函数 语法的兼容性,pta总是报错,vs2019却可以运行
11/8——11/15 16h 597 分支函数 while函数的分支
11/15——11/22 24h 719 分支函数if逻辑运算符 scanf输入字符时的使用
11-22——11/29 32h 480 switch函数的使用,break的使用 switch判断的范围
11/29——12/6 30h 520 while和do-while的结构和使用 使代码陷入死循环的输入样例的寻找方法
12/6——12/14 31h 560 继续学习循环结构,并学习continue和break。
12/14——12/21 29 453 学习函数,学习全局变量。

3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)

3.31学习内容总结

3.32 学习体会

请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。

1,学习了全局变量,自定义的四种函数类型-

2,没有多大难度

3,问题就是没有写大函数,感觉这些小的计算函数都可以直接用。

posted @ 2020-12-21 09:16  讹兽(王卓)  阅读(299)  评论(0)    收藏  举报