c语言|博客作业03

这个作业属于哪个课程 <https://edu.cnblogs.com/campus/zswxy/SE2020-1 >
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11448
这个作业的目标 加强对代码的理解
学号 20209148

一 本周作业

1.PTA实验作业

1.1 求简单交错序列前N项和
内容:本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
1.1.1实验代码截图

1.1.2数据处理
数据表达:用了变量n、x、i、flag、sum, n、x、i、flag都是整数型,sum是浮点型,x、i、flag通过赋值获得,sum通过累加获得
数据处理:表达方式sum=sum+flag*1.0/i、flag=-flag,流程结构 for的循环结构。
1.1.3PTA提交列表及说明


·Q1:在改了几次之后,每次都显示scanf的返回值被忽略
·A1:之后重新输入了一次之后就好了
1.2求分数序列前N项和
内容:本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
1.2.1实验代码截图

1.2.2数据处理
数据表达:用了变量n、i、j、sum、x、k,n、k都是整数型变量,x、i、j、sum为浮点型变量,sum通过累加公式获得,x、i、j、k通过赋值和公式获得。
数据处理:表达方式sum+=j/i、i=j、j=j+x,流程结构for循环结构。
1.2.3PTA提交列表及说明

·Q1:刚开始没有单独对第一项进行赋值,直接用了公式
·A1:对i、j的第一项进行了赋值
1.3求平方根序列前N项和
​ 内容:本题要求编写程序,计算平方根序列√1+√2+√3+...的前N项的之和。
1.3.1实验代码截图

1.3.2数据处理
数据表达:用了变量i、n、S、sum,i、n是整数型变量,S、sum是浮点型变量,sum通过累加公式获得。
数据处理:表达方式sum=sum+S、S=sqrt(i),流程结构为for循环结构。
1.3.3PTA提交列表及说明

·Q1:之前一直输出的是sum等于0,我以为没有对n赋值,于是在scanf中对n进行赋值
·A1:后来问了别人才解决的

2.阅读代码

include<stdio.h>

int main()
{
int r, c;
char a[20][20];
while (scanf("%d %d", &r, &c), r && c)
{
getchar();
int i, j, index = 0;
for (i = 0; i < r; i++)
for (j = 0; j < c; j++)
a[i][j] = getchar();
getchar();

    int isRow = 1, isOrder = 1, rb = 0, re = c - 1, cb = 0, ce = r - 1;
    while (1)
    {
        if (isRow)
        {
            if (rb > re)
                break;

            if (isOrder)
            {
                for (i = rb; i <= re; i++)
                    putchar(a[index][i] - 7);
                index = re;
                cb++;
            }
            else
            {
                for (i = re; i >= rb; i--)
                    putchar(a[index][i] - 7);
                index = rb;
                ce--;
            }
            isRow = !isRow;
        }
        else
        {
            if (cb > ce)
                break;

            if (isOrder)
            {
                for (i = cb; i <= ce; i++)
                    putchar(a[i][index] - 7);
                index = ce;
                re--;
            }
            else
            {
                for (i = ce; i >= cb; i--)
                    putchar(a[i][index] - 7);
                index = cb;
                rb++;
            }
            isOrder = !isOrder;
            isRow = !isRow;
        }
    }
    putchar('\n');
}
return 0;

}
这条代码很长,看着有点头痛。这条代码主要用了两个控制结构:if——else的分支选择结构和for的循环结构,运用的这两个结构正是我们最近学的,看到他对两个结构的运用,加深了我对两个结构的理解。

3.学习总结

3.1学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
15h 240 学习了代码的输入
24h 374 学习了变量的一些类型 变量之间的关系
40h 500 学习了编程的控制结构 对这些控制结构的操作不太懂
3.2累积代码行和博客字数

3.3学习感悟
这周确实学习许多东西,也弄明白了许多之前的一些问题,心里明白了那些操作,也就没怎么去巩固,觉得下次自己动手也是可以的。但是自己上手之后才会发现自己还是错误百出,所以c语言不仅是只靠记,还必须得去做,才能发现问题,也只有动手才能更熟练

原文地址:https://www.cnblogs.com/ly0224/p/13941395.html