C语言I博客作业10
问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I博客作业10 |
我在这个课程的目标是 | 掌握所学的C语言知识 |
这个作业在那个具体方面帮助我实现目标 | 完成PTA,从中学习 |
参考文献 | Markdown基本语法 |
一、PTA作业(20分/题)
1.1本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式;
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
1.1.1数据处理
数据表达:定义了整形i,j,n以及字符型变量c,c是输出的字母n是字母的行数。
数据处理:定义整形i,j,n,字符型变量c,c是输出的字母n是字母的行数。
把A赋值给c;
输入n;
for i递加
{
for j 递加
{
输出c;
c++;
换行;
1.1.2实验代码截图
1.1.3 造测试数据
||
|:--😐-|:--😐
输入数据|输出数据|说明
5|A B C D E
F G H I
J K L
M N
O|输出5行由大写字母A开始构成的三角形字符阵列。
4|A B C DE F G
H I
J|输出4行由大写字母A开始构成的三角形字符阵列。
1.1.4 PTA提交列表及说明
编译错误:;字符型定义变量打成了"",下次多加注意
1.2梅森数
形如2^n-1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2^31−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2^n−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2^n−1的梅森数,每行一个。如果完全没有,则输出“None”。
输入样例:
6
输出样例:
3
7
31
1.2.1 数据处理
数据表达:定义了整形变量n,m,i,j,x=0,n是用户输入的数,i用来保存输出梅森数,j和m用来控制循环
数据处理:
输入n
if n<2
{
输出 None
}
for 递增
{
将m的平方赋值给i
for i的递增
{
if i除以j取余等于0
x++
}
if x等于0
换行 i
重新赋值x
1.2.2 实验代码截图
1.2.3 造测试数据
||
|:--😐-|:--😐
输入数据|输出数据|说明
8|3
7
31
127|按从小到大的顺序输出所有不超过2^8−1的梅森数
6|3
7
31|按从小到大的顺序输出所有不超过2^6−1的梅森数
1.2.4 PTA提交列表及说明
编译错误:输入的时候中间打了个句号,语句后少打了;在Dev-c++上调试后发现的问题。
1.3同构数
一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
输入格式;
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出格式:
1 5 6 25 76 376 625
1.3.1 数据处理
数据表达:定义了整形i,j,n;i用于for循环,n为输入的数,j是n的平方。
数据处理:定义整形i,j,n;i用于for循环,n为输入的数,j是n的平方。
开始
定义整形
for i的递增
{
将i赋值给n;
n的平方等于j;
if n==j%10||n==j%100||n==j%1000 /*判断是否n为同构数/*
输出
}
结束
1.3.2 实验代码截图
1.3.3 造测试数据
||
|:--😐-|:--😐
输入数据|输出数据|说明
无 |1 5 6 25 76 376 |直接输出
1.3.4 PTA提交列表及说明
少了个n=i
2.代码互评(5分)
同学代码
我的代码
都是用计算位数的方法然后求余来进一步判断是否为同构数。
不同之处:
他是自定义函数求平方,用for语句来计算求余除的数。我用了for循环挨个找出1000内的同构数。
同学代码
我的代码
分成两部分后,通过判断i%j是否为0来判断是否为素数。
开始是n<2,用n=1来排除None这种情况,这位同学用了break语句来跳出循环。
三、学习总结(15分)
3.1 学习进度条(5分)
||
---|:--😐:--😐:--😐---
周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
第六周|20小时|247行|运用 MinGW-w64 来编译C程序|无
第七周|7小时|118行|学会了if-else语句|无
第八周|6小时|100行|掌握使用for循环语句实现指定次数的循环程序设计|无
第九周|9小时|124行|学会使用自定义函数|特殊符号的运用不太明白
第十周|16小时|216行|字符型数据类型和自定义函数|对字符型不怎么了解
第十一周|20小时|258行|学习了switch语句|switch语句用不熟练
第十二周|8小时|198行|学习了while语句,do-while语句|对括号内定义不明确
第十三周|13|221|break与continue语句|不太会使用continue
第十四周|21|245|学习了嵌套语句|还在摸索中,用不熟练
3.2 累积代码行和博客字数(5分)
||
---|:--😐:---
时间|代码行数|博客字数
第六周|245|1107
第七周|364|2235
第八周|467|3457
第九周|549|3826
第十周|845|5126
第十一周|1023|6874
第十二周|1241|8241
第十三周|1415|9898
第十四周|1722|9422
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
作业难度依次在增加,如果只是跟着老师的节奏,只会落后的越来越多,课后多作巩固,才能熟能生巧。和大佬的差距落下很多,自学能力还不够。