C语言I博客作业10

||
--|:--:
这个作业属于那个课程|C语言程序设计II
这个作业要求在哪里|作业
我在这个课程的目标是|可以回顾一下以前所学的知识
这个作业在那个具体方面帮助我实现目标|对以前的知识进行回顾了一下
参考文献|C语言程序设计(第3版),百度

1.PTA实验作业 输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

1.1

输入格式:
输入在一行中给出一个正整数n(1≤n<7)。

输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

输入样例:

4

输出样例:

A B C D 
E F G 
H I 
J 

1.1.1数据处理:

数据表达:定义了变量i, j, n,op;i, j是用来控制循环,n是用户输入数据,op是为了输出字符;i, j, n,是整形变量,op是字符型变量。
数据处理:

	定义变量i, j, n,op;其中i, j是用来控制循环,n为正整数n(1≤n<7),op是定义字符变量。
	输入正整数n(1≤n<7)
	if (判断1≤n<7是否成立) {
		for (确定行数) {
			for (确定列数) {
				输出从A开始的字符,并利用ASCII码值进行字符的变换。
			}
			换行
		}
	}
	
}

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
6 输出6行字符
1 输出1行字符
3 输出3行字符

1.1.4 PTA提交列表及说明

** 我在VS上面运行无误后直接复制粘贴 **

1.2 梅森数

形如2^​n−1的素数称为梅森数(Mersenne Number)。例如2^2
​​−1=3、23​​−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。

本题要求编写程序,对任一正整数n(n<20),输出所有不超过2^​n−1的梅森数。

输入格式:
输入在一行中给出正整数n(n<20)

输出格式:
按从小到大的顺序输出所有不超过2^​n−1的梅森数,每行一个。如果完全没有,则输出“None”。

输入样例:

6

输出样例:

3
7
31

1.2.1 数据处理

数据表达: 定义了变量n,j,m,i,count ;n是用户输入数据,i,j,count是直接赋值,m是用来储存2^i-1的结果;n,j,m,count是整形变量。
数据处理:


         定义变量n,j,m,count;n是正整数n(n<20),i,j拿来控制循环,count用来判断是否有梅森数的存在,m是用来储存2^i-1的结果。
	for (判断i与n的大小) {
		储存数据
		for (对储存数据判断是否为素数) 
			if (如果不是素数) {
				跳出循环;
			}
		if (正常结束循环) {
			输出结果并换行;
                对count赋另外的值
		}
	}
	if (如果count不变)
		输出None
}

1.2.2实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
3 3是判断进行2^n-1的次数
5 5是判断进行2^n-1的次数
7 7是判断进行2^n-1的次数

1.2.4 PTA提交列表及说明

我在VS上面运行无误后直接复制粘贴

1.3 同构数

一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。

输出格式:
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:

     1     5     6    25    76   376   625

1.3.1 数据处理

数据表达: 定义了变量i, n ;i在循环中直接赋值,n是储存数据;i, n都是整形变量 。
数据处理:


	定义变量i,n;i是用来判断循环次数
	for (确定循环次数)
	{
		数据减掉原来的数,并储存数据
		if (判断10以内的同构数) {
		输出同构数;
                跳过后续操作	
		}
		if (判断100以内的同构数) {
			输出同构数;
                跳过后续操作	
		}
		if (判断1000以内的同构数) {
			输出同构数;
                跳过后续操作	
		}
	}
}

1.3.2实验代码截图

1.3.3 造测试数据

输入数据 输出数据 说明
1 5 6 25 76 376 625 输出1000以内的同构数

1.3.4 PTA提交列表及说明

2.代码互评

同学代码截图:

同学代码截图:

自己代码截图:

1.第一个同学:第一位同学的代码和我的代码风格大致相同,不同之处在于我比他多了一个判断输入的if条件语句,并且该同学的内部循环用j=i,我觉得这比较方便,思维比较好;
2.第二位同学: 第二位同学的外部循环是先把i=n,然后在进行累减,我的是进行累加,而且这位同学输出字符用的是putchar,我用的是printf,虽然putchar,比较正规,但我觉得printf比较方便;
3.总体来说:上面两位同学的代码和我的代码在风格上都有所不同,不同的人写相同的题目,由于思维角度的不同,从而有不同的代码风格,我要在那些比较好的代码行中吸取经验。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第四周 4h 9 makedown语法 对于C语言知识不太了解
第五周 11h 121 输入和输出 一些基本的格式
第六周 16h 187 ig-else语句 对于一些格式不是不懂
第七周 17h 342 markdown语法和if-else语句 对于变量还是不能很好的掌握
第八周 17h 121 定义两个变量,对for循环有更进一步的了解 对于基本知识还是不够扎实
第九周 20h 178 while循环,定义和调用函数 对于定义和调用函数还是不怎么了解
第十周 18h 143 for循环和if-else语句之间嵌套 读完题目后大脑里面没有相应的代码
第十一周 17h 193 switch可以处理多分支问题 对于编程题不能很快的写出代码
第十二周 15h 156 新学了do-while循环,了解了for,while,do-while循环之间的区别,并对在相应环境用最合适的循环有了初步认识 题目做的比较慢,一些基本知识还是不够扎实
第十三周 16h 183 学到了嵌套循环和break,continue语句 不能很好的把所学的东西交叉运用
第十四周 19h 213 对以前所学的东西进行了一定程度上的复习 对以前所学的东西不能灵活应用

3.2 累积代码行和博客字数

时间 博客字数 代码行数
第四周 323 76
第五周 783 154
第六周 1542 204
第七周 2131 293
第八周 2831 387
第九周 4017 429
第十周 5066 463
第十一周 6145 573
第十二周 7260 683
第十三周 8434 813

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

1.通过此次作业我对以前所学的东西复习了一下,我发现以前学的东西忘记了许多,可能是我一直在往前面赶进度的原因,平时很少回顾以前的知识点,现在我认为在往前面看新知识的同时要拿出一点时间来回顾一下以前的东西;
2.我需要多看点有关IT方面的知识,其他有些同学都已经学了好多知识了,而我一直在跟着老师的脚步,我需要提高一定的学习效率了;
3.希望自己能一直坚持下去,多学点知识。

posted @ 2019-11-28 21:32  -追梦少年-  阅读(456)  评论(9编辑  收藏  举报