C语言I博客作业11

问题 答案
这个作业属于哪个课程 c语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10132
我在这个课程的目标是 熟练使用C语言
这个作业在那个具体方面帮助我实现目标 pta习题
参考文献 https://blog.csdn.net/liujian20150808/article/details/50630546

1.PTA实验作业

C语言I博客作业11_第1张图片

1.1

6-2 统计各位数字之和是5的数 (20分)

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

1.1.1数据处理

  • 数据表达: 变量 类型
    e 整型 函数返回值
    x 整型 各位数之和
    number 整型 要求判断的数字
    a 整型 范围左区间
    b 整型 范围右区间
    i 整型 范围统计数字
    sum 整型 数字和
    is() 函数 判断是为否符合题意的数
    count_sum 函数 计算和输出个数和总和
  • 数据处理:
    接收变量number;
    将number对10取余且平方加给x;
    当number为0时判断x是否为5;
    接收范围;
    最小值开始递增,并且判断is(a);
    如果真;计数器i加一;
    加到sum上;
    a递增到b;
    输出i与sum。

.2实验代码截图
C语言I博客作业11_第2张图片

1.1.3数据测试

输入数据 输出数据 说明
104 999 题目要求
105 105 没有
1 999 随机数

1.1.4提交列表及说明

C语言I博客作业11_第3张图片
*无

1.2

对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 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.2.1数据处理

  • 数据表达: 变量 类型
    s 整型 范围下限
    e 整型 范围上限
    x 整型 被判断的数
    S 整型 代替s进行依次计算
    flag 函数 判断有无特立独行幸福数
    flag2 整型 判断是否为特立独行幸福数
    a[] 数组 记录范围内所有特立独行的数字
    y 整型 代替数组内每一个元素进行计算
    add 每一位数平方的和
    happy(int x) 函数 判断是否为幸福数字
    prime(int x) 函数 判断是否为素数
    happysat(int x) 函数 计算幸福值
    函数中的e 整型 返回值
    函数中的max 整型 记录迭代中的最大值
  • 数据处理:
    输入范围s e;
    从i=-1开始,调用happy函数;
    将所有返回值为1的s填入数组;
    从s递增,如果调用happy函数判断s;
    如果返回值为1;
    令flag2=1;
    将s遍历数组;
    判断数组中的每一个数在迭代至1的过程中有没有与s相等;
    如果没有;
    输出s;
    并计算幸福值;
    调用prime函数;
    如果返回值为1;
    幸福值*2;
    输出s与幸福值happysat。

    1.2.2实验代码截图

    C语言I博客作业11_第4张图片
    C语言I博客作业11_第5张图片
    C语言I博客作业11_第6张图片
    C语言I博客作业11_第7张图片
    C语言I博客作业11_第8张图片
    C语言I博客作业11_第9张图片
    C语言I博客作业11_第10张图片

1.2.3数据测试

输入数据 输出数据 说明
10 40 题目要求
110 120 无幸福数
1 1000 C语言I博客作业11_第11张图片 较大数

1.2.4 提交列表及说明

C语言I博客作业11_第12张图片

  • 部分正确:经过测试,99或999或9999或9998等会形成的死循环但不会包含自己;且最大值也不在死循环中,但是这些数最后的循环却出奇的一致,于是设置了一个判断来排除这种情况。

    2.代码互评

  • 同学代码
    C语言I博客作业11_第13张图片

  • 我的代码
    C语言I博客作业11_第14张图片
    C语言I博客作业11_第15张图片

  • 同学代码使用表达式i(int)sqrt9=(n)来判断是否为一个数的平方,我用的是遍历的方法,同学的比较节约运算时间。

    3.学习阶段

    周/日期 这周所花的时间 代码行
    10/7-10/14 7个小时 130
    10/15-10月17 6小时 75
    10/18-10月26日 12小时 90
    10月27-11月1日 8小时 150
    11月2-11月8日 9小时 117
    11月9日-11月15日 10小时 110
    11月16日-11月22日 7个小时 85
    11月23日-11月29日 10小时 500
    11月30日-12月6日 20个小时 260

    3.2累计代码行的博客字数

    C语言I博客作业11_第16张图片

3.3学习内容总结和感悟

3.3.1学习内容总结

*思维导图
C语言I博客作业11_第17张图片
C语言I博客作业11_第18张图片

3.3.2 学习体会

  • 解方程那道题好像有点问题,明显错误的程序却可以拿到满分,希望老师以后选题更加严谨。

你可能感兴趣的:(C语言I博客作业11)