C语言I博客作业02

1.作业头

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业要求的链接
这个作业的目标 解决现在存在的问题,降低错误率。
学号 20208925

1.PTA实验作业

1.1求分数序列前N项和

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。

1.1.1实验代码截图

1.1.2数据处理

数据表达:运用了i,N,a,b,浮点型变量sum,i表示循环次数,sum存放累加和。
数据处理:流程结构:循环结构

1.1.3PTA提交列表及说明

Q1: 一开始的答案错误
A1: 没有精确到小数点二位

1.2.1实验代码截图

1.2 L1-036 A乘以B

1.2.2数据处理
数据表达:定义A和B
数据处理:表达式A*B

1.2.3PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

Q1: 这题很简单
A1: 没有问题

1.3求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。

1.3.1实验代码截图

1.3.2数据处理:

数据表达:变量及其类型:整型变量:N。浮点型变量:sum,S。
数据表达:表达式:sum=0,S<=N,S++,sum=sum+1.0/(3S-2)pow(-1,S-1),流程结构:循环结构。

1.3.3PTA提交列表及说明

Q1: 答案错误
A1: 输入语句要放在循环语句之外

2.阅读代码

优秀代码:

#include <cstdio>

int sum(int a, int b)
{
    int ret = 0;
    while (a)
    {
        ret += a % b;
        a /= b;
    }
    return ret;
}

int main()
{
    for (int i = 2992; i <= 9999; i++)
        if (sum(i, 10) == sum(i, 12) && sum(i, 10) == sum(i, 16))
            printf("%d\n", i);
    return 0;
}

理解:使用了cstdio,定义了a,b两个变量,运用了while循环结构,将十进制转化为十二进制和十六进制,再运用for循环结构和分支结构,筛选出从2992到9999中符合题意的数字。
简单明了,没有多余变量,缩短了运行时间。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第十周 16 119 循环,数组 如何灵活运用循环结构

3.2 累积代码行和博客字数

时间 博客字数 代码行数
第8周 587 19
第9周 488 56
第10周 1368 108

3.3 学习感悟

在这几周的学习里,我在不断进步,对这门课程的了解也不断加深,这门课需要花很多时间去学习,但学习是一件快乐的事情,在不断的学习中,我可以收获了许多,在接下来的学习中我要更加努力。对于那些我还不懂东西,花更多的时间去解决。

posted @ 2020-11-08 11:53  迟暮ღ  阅读(167)  评论(1)    收藏  举报