zoukankan      html  css  js  c++  java
  • 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语言不仅是只靠记,还必须得去做,才能发现问题,也只有动手才能更熟练

  • 相关阅读:
    Django 之 ORM
    python 变量问题 提问有大佬知道吗?
    celery 使用详解
    ubuntu 网络图标消失问题解决
    django + uwsgi 部署上线
    Python pip常用源地址
    ConfigParser 模块 使用
    Mysql 远程登录问题解决
    商城项目 从设想到实现
    硬盘上有打开的锁和感叹号标志如何解决(win10系统)
  • 原文地址:https://www.cnblogs.com/ly0224/p/13941395.html
Copyright © 2011-2022 走看看