C语言I博客作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-3 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11454 |
这个作业的目标 | 掌握使用for循环语句实现指定次数的循环程序设计,学会阅读代码 |
学号 | 20209038 |
1.PTA实验作业(15分/题)
1.1 题目1 求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
1.1.1实验代码截图
1.1.2数据处理
数据表达:定义了整数型变量 denominator,flag,i,N 双浮点型变量 item,sum;其中N的值是输入的,flag、i、denominator、item、sum的值是赋予的
数据处理:利用for循环实现累加处理。
1.1.3 PTA提交列表及说明
说明:
Q1:运行超时。
A2:for语句没有写完整,出现死循环。
Q2:编译正确,输出结果都一样,但是总是出现答案错误。
A2:没有看清楚题目的输入格式要求,=左右俩边各还有1个空格
1.2 题目2 计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!
1.2.1 实验代码截图
1.2.2 数据处理
数据表达:定义了整数型N,i,a,b 其中a,i赋1,b赋2。N的值通过scanf()的输入。
数据处理:利用for循环实现阶乘的同时进行累加处理。
2.3 PTA提交列表及说明
说明:
Q1:一开始调用库函数#include<math.h>,代码有点复杂。
A2:仔细思考发现只用一个for循环就可以实现。
1.3 题目3 电子汪
据说汪星人的智商能达到人类 4 岁儿童的水平,更有些聪明汪会做加法计算。比如你在地上放两堆小球,分别有 1 只球和 2 只球,聪明汪就会用“汪!汪!汪!”表示 1 加 2 的结果是 3。
本题要求你为电子宠物汪做一个模拟程序,根据电子眼识别出的两堆小球的个数,计算出和,并且用汪星人的叫声给出答案。
1.3.1 实验代码截图
1.3.2 数据处理
数据表达:定义整数形变量a,b,把a,b的和值赋予n
数据处理:利用for循环实现重复输出
1.3.3 PTA提交列表及说明
说明:
Q1:一开始很蒙看到题目,不知道写啥。
A1:尝试写了一下,就渐渐清晰。就一遍过了。想相信自己,先试试。
2.阅读代码(-5——5分)
找一份优秀代码,理解代码功能,并讲出你所选代码优点及可以学习的地方。
- ACM解题
- leecode面试数题网站,找简单题目阅读分析。
题目:
人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。
输入描述:
本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。
输出描述:
如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char s1[200001],s2[110000];
while(~scanf("%s %s",s1,s2))
{
sprintf(s1,"%s%s",s1,s1);
if(strstr(s1,s2))puts("yes");
else puts("no");
}
}
优点:此代码运用了数组和while语句,代码简洁,且用时短。
分析:同样是判断亲和串的问题,有很多种代码解答,运用c语言中这串代码是我看到最简洁而运行不超时的代码。运用while语句循环输入,再运用strstr()判断这俩串数是否亲和。最后输出结果。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/12——10/18 | 20h | 371 | printf(),scanf()的用法 | 在visul studio 2019中scanf()不能直接用 |
10/19——10/23 | 21h | 403 | if语句 | 无 |
10/24——10/25 | 13h | 109 | if语句 | 无 |
10/26——11/1 | 16h | 224 | 头文件#include<math.h>的运用 | 计算机是如何建立连接调用里面的代码的 |
11/2——11/8 | 30h | 300 | for循环 | 如何快速找出for循环的编译错误 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数(字符) | 代码行数 |
---|---|---|
第一周 | 772 | 386 |
第二周 | 1108 | 578 |
第三周 | 3245 | 643 |
3.3 学习感悟(5分)
感悟:这次作业比前几次量都大,时间也短了不少。学习必须走到老师前面,不连作业都写得十分吃力。学本事还得靠自己走,跟着走只能摸到点影子。
总结:
- 1.学会合理安排时间,不要什么事都揽身上。学会取舍。
- 2.阅读的时候要仔细,跟着书本一步一步来,书上还是有很多有用的细节的。