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

浙公网安备 33010602011771号