C语言I博客作业02

C语言I博客作业02

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11449
这个作业的目标 <理解代码的含意,总结本周知识>
学号 <20209142>

一:PTA实验作业

1.1

1.1.1:编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

1.1.2::介绍实现本题过程中,你的数据表达、数据处理是怎么做的。
  • 数据表达:用了N,j,sum,k变量,N是赋的初始值,sum是求和的值,k是整型,double j是双精度浮点型。
  • 数据处理:表达式:sum+=j/i; double x=i; i=j; j=j+x; 流程结构:for循环流程结构。
1.1.3:PTA提交列表及说明

  • Q1:一开始不知道怎么表示分子,分母。
    A1:经过反复尝试,将分子,分母定义为两个变量。
  • Q2:对浮点数表示不清楚。
    A1:通过书本知识和网上知识将浮点数理解清楚。

1.2

1.2.1:编写程序,据说汪星人的智商能达到人类 4 岁儿童的水平,更有些聪明汪会做加法计算。比如你在地上放两堆小球,分别有 1 只球和 2 只球,聪明汪就会用“汪!汪!汪!”表示 1 加 2 的结果是 3。本题要求你为电子宠物汪做一个模拟程序,根据电子眼识别出的两堆小球的个数,计算出和,并且用汪星人的叫声给出答案。

1.2.2::介绍实现本题过程中,你的数据表达、数据处理是怎么做的。
  • 数据表达:用了i,sum,A,B变量,i是赋的初始值,sum是求和的值,A,B是整型。
  • 表达式:sum=A+B;if(A<=9&&A>=1&&B<=9&&B>=1)。流程结构:for循环流程结构。
1.2.3:PTA提交列表及说明

  • Q1:题目完全无从下手,不知道怎么表示。
    A1:通过进行for循环流程结构。
  • Q2:对输出结果三个“Wang!”表示不了。
    A1:对变量进行定义。

1.3

1.3.1:编写程序,如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。

1.3.2::介绍实现本题过程中,你的数据表达、数据处理是怎么做的。
  • 数据表达:用了a,b,c变量,a,b,c是整型。
  • 表达式: b=a+2;c=b%7;c=a+2。流程结构:if判断流程结构。
1.3.3:PTA提交列表及说明

  • Q1:对判断结构认识不清楚。
    A1:从书上的例题了解判断结构,进行代码。
  • Q2:对星期的范围没有定义。
    A2:进行了1—7的范围定义。

二:阅读代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define N 100005
#define ll long long
#define pi acos(-1.0)
 
int a[N],b[N];
 
int main()
{
 
    int n,m,ans;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(int i=1;i<=n;i++) scanf("%d",a+i);
        for(int i=1;i<=m;i++) scanf("%d",b+i);
        sort(a+1,a+n+1);
        sort(b+1,b+m+1);
        ans = 0;
        int ii = 1,jj = 1;
        while(ii<=n&&jj<=m)
        {
            if(a[ii]==b[jj])
            {
                ii++;
                jj++;
                ans++;
            }
            while(ii<=n&&a[ii]<b[jj]) ii++;
            while(jj<=m&&b[jj]<a[ii]) jj++;
        }
        printf("%d\n",ans);
    }
}

一开始看到这个代码就是懵逼。但是学习不就是迎难而上。以下是我看这个代码的收获。

  • 了解了各种头文件,明白了不止有
    <stdio.h>
  • 明白EOF(end of file)是文件的结束,通常来判断文件的操作是否结束的标志,知道了EOF不是特殊字符,而是定义在头文件<stdio.h>的常量,一般等于-1。
  • 更加深刻的认识了while结构和for结构的相互应用。
  • 初步看到了代码应用和逻辑思维的结合。
  • 对变量进行多次变化有点懵逼,但是也提供了我一个新的思维去理解代码的书写。
  • 变量之间怎样联系,这种大幅度长的代码要多么细心也是我值得考虑的。

虽然理解这种代码很难,但是其中的好处是不少的,有许多许多的新东西等待着我们去发现,去想知道它是怎样表示的,它的意思是什么。

三:学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
15h 346 了解代码的输入输出 变量的表示
25h 541 进行变量计算,了解整型、浮点型 各个结构不清楚
40h 749 对for结构的运用 对复杂问题的变量提供不全

3.2 累积代码行和博客字数


3.3 学习感悟

本周学习到了for结构,还需要巩固联系,一开始对各种变量的处理总是出问题,不知道变量之间的关系,对表达式的运算错误,代码打的太慢,问题还是太多,以后有空的话,多去看那些比较多的代码,然后通过各种查询去了解这个代码的结构。人生在勤,不索何获。

posted @ 2020-11-07 16:47  晚安橘子海  阅读(184)  评论(8编辑  收藏  举报