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 学习体会