C语言I博客作业07

C语言I博客作业07

作业头

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-1
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530
这个作业属于那个课程 C语言程序设计II
我在这个课程的目标是 灵活运用while及do while
这个作业在那个具体方面帮助我实现目标 越基础越重视
参考文献 c语言程序设计(第三版)
学号 20208955

二、PTA实验作业(20分/题)

排名图片

1.1

第一题

实验7-2-6 打印杨辉三角 (20分)
本题要求按照规定格式打印前N行杨辉三角。

1.1.1

数据处理

数据表达:使用了变量 整型n,i,j,数组a[11][11]; n是输入的行数,i是运行的行数,j是列数,a是每行每列的数。
数据处理: 表达式与流程结构<伪代码如下>:
        a[1][1] = 1;  //所有杨辉三角形每行的第一个数值都是1
        for (i = 2; i <= n; i++) //先开始循环行数
        for (j = 1; j <= i; j++) //再是循环列数
        a[i][j] = a[i - 1][j] + a[i - 1][j - 1];//计算出每个数的数值
        for (i = 1; i <= n; i++) //输出空格+数字 (第 n行有 n个数字)
        if (j == 1)        //每一行的第 1个要先输出空格
        for (k = n - i; k >= 1; k--) //输出每行前面的空格

1.1.2

实验代码截图

1.1.3

造测试数据

数据 结果 说明
2 1 (\n) 1 1 全为1
3 1 (\n) 1 1 (\n) 1 2 1 开始有数字不为1
1 1 第一行就为1

格式不允许我换行

1.1.4

PTA提交列表及说明

说明

多种错误:在VS里面经过调试后基本可以将杨辉三角给整出来了,但是,他还需要利用金字塔的特点,将空格输入进去,然后再输入空格的时候,循环开始有点懵,将‘i=1,j=1’哪里的循环条件弄错了,而且括号的顺序不对。

编译错误:在不断地更改中,括号中途存在没有对应删干净。

1.2

第二题

7-3 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。

1.2.1

数据处理

数据表达:定义了 整型变量 n,s=0;n是输入的数,s是更改前定义的,没删干净
数据处理:  表达式与流程结构<如下所示>:
           while (n != 1)  //因为最终的结果都是1,那就当n不为1的时候开始循环
           if (n % 2 == 1)
           n = n * 3 + 1;  //判断为奇数的时候,并且计算
           n /=2;         //判断为偶数的时候,并且计算![]

1.2.2

实验代码截图

1.2.3

造测试数据

数据 结果 说明
1 (无) 1不符合条件
2 2/2=1 最小偶数
4 4/2=2 2/2=1 正常数值

1.2.4

PTA提交列表及说明

说明

答案错误: 开始的时候是先判断是奇是偶,然后再循环输入算式,其实也想到了把判断放在循环里面,但是没有深入去思考,觉得没什么多大的区别,而且自我还感觉这样简单一些,后面问学长,才知道,其实题目中的隐藏要求是判断多次,然而我的话就判断了一次,所以没有考虑到。

编译错误:开始错的时候没有完全认识到根本错误,于是就尝试直接改,就也还是错的了。

三、代码互评

同学代码

第一位

第二位

自己

第一位

  • 基本思路差不太多,但是有的细节,如:开始我定义a[11][11]时,将数组初始化了,这位同学没有,虽然也没问题,但是我还是觉得初始化是个好习惯。

  • 在输入a[i][j]的时候,那个循环,同学的是i=3,我的是i=1.同学是直接将每行开始的1,与最后的1排除了,我加了都可以。

  • 同学在循环输入空格的时候没有(j==1)更简洁。

第二位

  • 这位同学先是a[10][10]就是刚开始的时候我的胃1,同学的为0,但也差不太多。

  • 同学利用if else的结构表示a[i][j]为第一个和最后一个=1,我的是直接结合在一起,我的更加简洁。

3.1学习总结(15分)

3.1 学习进度条(5分

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第八周 6小时 262 怎么输出内容 一些结构的定义
第九周 8小时 670 开始输入及套用公式 字符的一些定义
第十周 24小时 593 数组 迷糊流程,字符串,以及对题目的处理
第十一周 30小时 1034 函数 宏定义,对题目不能很好的反应过来
第十二周 32小时 2431 EOF等一些基本知识,接触到了c++ 对于一些函数还不能很好的运用
第十三周 32小时 2742 switch的灵活运用 用函数去表达素数
第十四周 28小时 2324 which,do while 循环 将之前所学的知识结合起来运用,循环会乱

3.2累积代码行和博客字数(5分)

时间 博客字数 代码行数
第八周 585 262
第九周 1031 670
第十周 1289 593
第十一周 1413 1034
第十二周 1664 2431
第十三周 1998 2742
第十四周 2453 2324

3.3 学习内容总结和感悟(5分)

3.3.1 学习内容总结

3.3.2 学习体会

还是太菜了,本次作业都觉得没有之前的容易了,很多同学都进步飞快,我却一直学了忘,遇到很多题目都是看似简单,有想法,有思路,甚至就觉得是和之前学过的差不多,但是吧,我也就是有错误我有时候也不明白错在哪里。然后我会发现,其实书上有很多东西,都是很多我不会的,一些新知识点,又或是一些更简便的方法,都是我不会的,然而之前也因为刚翻几面,不懂,不看了。真是错过啊!然后,后面就是把目前比较困惑的地方解决了,然后再看书吧,题目都是源于教材高于教材的嘛,砥砺前行!
posted on 2020-12-05 22:59  浮生若梦☆  阅读(182)  评论(6编辑  收藏  举报