C语言I博客作业10
| 这个作业属于那个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10095 |
| 我在这个课程的目标是 | 熟练地掌握运用C语言,锻炼思维逻辑能力,为以后其他语言的学习打好基础. |
| 这个作业在那个具体方面帮助我实现目标 | 学习循环结构程序设计与用穷举法解决问题 |
| 参考文献 | 《C语言程序设计》《C Primer Plus》百度百科 伪代码基本写法 |
1.PTA实验作业

1.1输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列.
输入格式:输入在一行中给出一个正整数n(1≤n<7).
输出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格.
1.1.1数据处理
数据表达:用了变量letter,i,j,n.letter通过赋值得到,n通过直接输入得到,i,j作为循环控制变量.letter类型为字符型,i,j,n全为整型.
数据处理:letter表示大写字母,i,j作为循环控制变量,n表示输入的正整数.
所用表达式:letter='A';letter=letter+1;
流程结构:
Begin
输入一个正整数n
for i←1 to n
{
for j←i to n-i+1
{
printf("%c ",letter);
letter←letter+1
}
printf("\n");
}
End
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 4 | ![]() |
使用题目数据 |
| 1 | A | 使用最小n |
| 6 | ![]() |
使用最大n |
| 2 | ![]() |
随机n |
1.1.4 PTA提交列表及说明

1.编译错误:int main()写成了int mian()编译错误:定义的函数名在调用时,函数名拼写错误
2.格式错误:输出格式有误,应将printf("%c",letter);改为printf("%c ",letter);.
1.2梅森数
形如2n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231-1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。
输入格式:输入在一行中给出正整数n(n<20).
输出格式:按从小到大的顺序输出所有不超过2^n−1的梅森数,每行一个。如果完全没有,则输出“None”.
1.2.1数据处理
数据表达:用了变量i,j,n,item,count.n通过直接输入得到,item,count的通过赋值得到,类型全为整型.
数据处理:n表示输入的正整数,i,j表示循环控制变量,item表示for循环中每一项的值,count表示梅森数的个数.
所用表达式:count=0;item=pow(2,i)-1;item%j0;count++;count0;
流程结构:
Begin
输入正整数n
for i←2 to n
{
item←pow(2,i)-1
for j←2 to sqrt(item)
{
if(item%j==0)
break;
if(j>sqrt(item))
{
printf("%d\n",item);
count++;
}
}
if(count==0)
printf("None");
End
1.2.2试验代码截图

1.2.3造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 6 | 3 7 31 | 使用题目数据验证 |
| 1 | None | 使用最小n |
| 19 | 3 7 31 127 8191 131071 524287 | 使用最大n |
| 4 | 3 7 | 随机值n |
1.2.4PTA提交列表及说明

1.部分正确:没有考虑到完全没有梅森数的情况,少了if(count==0)printf("None");.
1.3同构数
一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数.
输入格式:在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符.
输出格式: 1 5 6 25 76 376 625
1.3.1数据处理
数据表达:用了变量i;类型为整型.
数据处理:i是循环控制变量.
所用表达式:ii*i%10||iii%100||i==ii%1000;i=1;i++;
流程结构:
Begin
for i←1 to 1000
{
if(i==i*i%10||i==i*i%100||i==i*i%1000)
printf("%6d",i);
}
End
1.3.2实验代码截图

1.3.3造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 无 | 1 5 6 25 76 376 625 | 使用题目数据 |
1.3.4PTA提交列表及说明

2.代码互评
我的代码:

同学(1)的代码:

代码差异:
1.在判定是否是素数的for语句的语句二不同,我的是for(j=2;j<=sqrt(item);j++);而同学(1)的是for(j=2;j<=number/2;j++);
2.在判定是否有梅森数时所用条件语句不同,我定义了flag=0;当没有一个梅森数时flag0,printf("None");而同学(2)定义了count=0;当有梅森数时就递增1;当count0时,printf("None");
我的代码:

同学(2)的代码:

代码差异:
1.由于我通过计算已知n=1时,没有梅森数,所以我没有表明n=1的情况,而同学(2)表明了n=1的情况,思路更加清晰.但n=2的情况与下面的for语句重复了,可以删去.
2.我运用了for循环的嵌套,而同学(2)是for循环中加入一个while语句,表达方式不同.
3.由于同学(2)先将n=1时列举出来了,可以不添加一个flag=0或者count=0去区别.
3.学习总结
3.1学习进度条
| 周数/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
|---|---|---|---|---|
| 第三周(10/08--10/12) | 12个小时 | 300行左右 | 定义函数,if-else,for循环语句 | 输入与输出格式,空语句 |
| 第四周(10/14--10/18) | 15个小时 | 250行左右 | for循环语句,基础的循环程序设计,数据的输出宽度 | 数据的输出宽度概念不太清晰,表达式的定义,空语句的定义 |
| 第五周(10/23--10/26) | 12个小时 | 350行左右 | 自定义函数的声明与调用,break跳出循环,while()循环语句 | 自定义函数的应用 |
| 第六周(10/30--11/01) | 18个小时 | 500行左右 | if-else的嵌套,学习逻辑运算,条件语句,字符类型以及字符型数据的输入与输出 | 对字符型数据的输入与输出了解太少,缺乏练习,没有理解到getchar()字符输入函数与putchar()字符输出函数以及它们的运用 |
| 第七周(11/05--11/07) | 24个小时 | 720行左右 | 使用switch语句的三种情况,在switch语句中使用break语句,数组的定义与使用 | continue语句的使用,for语句的嵌套循环 |
| 第八周(11/12--11/15) | 19个小时 | 810行左右 | 学习使用while和do-while语句实现次数不确定的循环,使用break语句处理多循环条件,以及了解while,do-while,for三种语句的差异 | ASCII码和char类型和int类型的转换,进制数转化的多种方式 |
| 第九周(11/19--11/21) | 16个小时 | 600行左右 | 学习了for循环的嵌套以及了解break语句和continue语句的用法和区别 | 静态数组和动态数组的区别 |
| 第十周(11/26--11/28) | 17个小时 | 680行左右 | 使用穷举法解决问题 | 当存在数据溢出情况时,数据的定义与取值范围选取 |
3.2累积代码行和博客字数

3.3学习内容总结和感悟
3.3.1学习内容总结

3.3.2学习体会
在本次作业完成过程中,我产生了一个[errror]Id returned 1 exit status错误,这是我之前从来没有看见过的错误,经过代码分析,我发现是我的int main()错打成为int mian()而导致的错误,在网上百度这个错误点时,发现该错误可能有如下原因:
1.库函数拼写错误。如:printf,scanf,等
2.定义的函数名在调用时,函数名拼写错误
3.在执行函数时可能函数体本身的问题
4.可能有程序正在运行
此外,在pta刷题经常遇见数据溢出的情况,当发生整型数据溢出时就要考虑换整型变量符号.还有一个问题就是----就我而言,我对于ASCII码的运用与计算太过于生疏.
C语言I博客作业10的更多相关文章
- c语言1博客作业10
一.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10101 ...
- C语言I博客作业12—学期总结
一.我学到的内容 二.我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获 作业次数 作业链接 第一次 C语言I博客作业01 第二次 C语言I博客作业02 第三次 C语言I博客作业0 ...
- c语言1博客作业12-学期总结
一.我学到的内容 二.收获总结 2.1我的收获 链接: c语言1博客作业01:https://www.cnblogs.com/dy-985211/p/11578914.html c语言1博客作业02: ...
- C语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- c语言1博客作业02
c语言1博客作业02 这个作业属于哪个课程 C语言程序设计 这个作业的要求在哪 [作业要求](https://edu.cnblogs.com/campus/zswxy/SE2019-2/homewor ...
- C语言l博客作业06
C语言l博客作业06 问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homew ...
- C语言I博客作业01
C语言I博客作业01 作业1 这个作业属于哪个课程? C语言程序设计I 这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homewo ...
- C语言I博客作业02
这个作业属于那个课程 C语言程序设计I 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程的目标 ...
- C语言l博客作业05
问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9830 我在这 ...
随机推荐
- 关于高淇JAVA中SORM总结学习笔记详细个人解释
代码来源于高淇JAVA教学视频 谢谢高淇老师的教学. 因为自己在学习的过程中发现了很多困难点,总结下希望对自己接下来学框架提升.给像我一样得初学者方便. SORM框架是一个简单的ORM,关系对象映射, ...
- 【XSY2564】sequence
Description [题目描述] 给定一个长度为n的由['0'..'9']组成的字符串s,v[i,j]表示由字符串s第i到第j位组成的十进制数字. 将它的某一个上升序列定义为:将这个字符串切割成m ...
- SVD分解
首先,有y = AX,将A看作是对X的线性变换 但是,如果有AX = λX,也就是,A对X的线性变换,就是令X的长度为原来的λ倍数. *说起线性变换,A肯定要是方阵,而且各列线性无关.(回想一下,A各 ...
- os模块操作文件
os模块: path=os.path.join(os.path.dirname(os.path.dirname(__file__)),'images') path:运行脚本的当前文件下的上一个文件的地 ...
- Numpy 中的聚合操作
# 导包 import numpy as np sum np.random.seed(10) L = np.random.random(100) sum(L) np.sum(L) min np.min ...
- [考试反思]1029csp-s模拟测试92:弱智
我只能这么评价我自己. 看这个提交时间...我没话可说... T1半个世界都A了还是切不掉.又一次挂细节. T2不会证明的乱搞(虽然可以证明)A了没什么可说的算是水过. T3之前水过的题(打的次正解) ...
- AHOI2018 排列
首先是那个非常吃shi的题意,想好久一会就能发现题里面的意思是: 如果某一个数的值为x,那么它必须排在第x个数后面. 然后我们就可以发现形成了一棵树,第i个数的父亲是i,如果出现了环就说明无解. 于是 ...
- (十二)golang--进制和位运算
1.基本进制 (1)二进制:0,1,满2进1 在golang中,不能直接使用一个二进制表示一个整数,可以用八进制.十进制和十六进制表示 (2)十进制:0-9,满10进1 (3)八进制:0-7,满8进1 ...
- python机器学习——感知器
最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神 ...
- IDEA升级,提示"Connection Error Failed to prepare an update"
问题来源: 之前修改了IDEA的默认配置文件路径,然后升级新版本时就无法升级,提示"Failed to prepare an update Temp directory inside ins ...


