这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I博客作业10 |
我在这个课程的目标是 | 熟悉代码的编程,设计出一个小程序,能够正常运行并且能够拥有一定用户 |
这个作业在哪个地方具体方面帮助我实现目标 | 选择合适的算法、合理的循环结构,熟练的编写程序 |
参考文献 | 同构数 long函数 abs函数 时间复杂度和空间复杂度 |
1.PTA实验作业
1.题目名(输出三角形字符阵列 )
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D E F G H I J
1.1.1数据处理
数据表达:用到了三个整型变量,n用来作为题目的输入值,i代表行,j代表列;用到了字符型变量c,c用来赋值字符
数据处理:伪代码
#include<stdio.h> //头文件 int main() //函数名 { int n,i,j; //定义三个整型变量 char c; //定义字符型变量 c c = 'A'; //给变量c赋值A scanf("%d", &n); for(i=1;i<=n;i++) //进行行的循环 { for(j=i;j<=n;j++) //进行列的循环 { printf("%c ", c); //打印字符 c++; //字符自增 } printf("\n"); //输出换行 } return 0; }
1.1.2实验截图代码
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | ![]() |
能形成三角形 |
3 | ![]() |
能形成三角形 |
5 | ![]() |
能形成三角形 |
1.1.4 PTA提交列表及说明
说明:
Q1:多种错误
A1:编译代码错误,格式错误,改用了字符型变量编写代码
1.2题目名
形如2
n
−1的素数称为梅森数(Mersenne Number)。例如2
2
−1=3、2
3
−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数据处理
数据表达:用到了四个整型变量 num用来表示素数,n表示输入值次方,i,j用来循环,count用来计数梅森数
数据处理:伪代码
#include<stdio.h> //头文件 #include<math.h> //该编程中用到了数学 int main() //函数名 { int num,n,i,j,count=0; //定义四个整型变量 scanf("%d",&n); for(i=2;i<=n;i++) //进行循环 { num=pow(2,i)-1; //表示素数 for(j=2;j<=sqrt(num);j++) //进行循环 if(num % j==0) break; //如果为假,则跳出循环 if(j>sqrt(num)) // 判断是否为梅森数 { printf("%d\n",num); //打印梅森数 count++; //梅森数自增 } } if(count==0) //没有梅森数 printf("None"); //输出 None return 0; }
1.2.2实验截图代码
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | ![]() |
梅森数为3,7 |
5 | ![]() |
梅森数为3,7,31 |
6 | ![]() |
梅森数为3,7,31 |
1.2.4PTA提交列表及说明
说明:Q1:编译错误
A1:代码书写不正确,循环的嵌套没有使用好,处理素数开始直接写的pow(2,i)-1,后来将pow(2,i)-1复制给了num
2代码互评
1.同学代码截图
2.自己代码截图
说明:1.他是先定义了整型变量最后转换为字符型输出,而我是从一开始就直接定义了字符型变量,并用字符型变量直接赋值
2.我的代码比他的更加简单
3.同学代码截图
4.自己代码截图
说明:1.该同学先写出来当值为1时输出None,然后进行初始输入值为2的循环,而我是初始值赋为2进行循环判断有无梅森数
2.我和他用的的判断方法不同,他是用余数判断,而我的用到了根式判断
3.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
4/2019.9.21 | 7个小时 | 50 | 编程“hello word” | 初次接触对代码很迷惘,不知道表示的是什么意思 |
5/2019.10.2 | 8个小时 | 100 | 安装gcc编译器,将代码建在自己的文件里 | 如何安装的程序不明白 |
7/2019.10.11 | 10个小时 | 200 | 三种表达式,printf流程和scanf流程,if-else语句 | scanf流程还是不太明白 |
8/2019.10.17 | 20个小时 | 350 | 使用for循环语句数的循环程序设计 | for循环语句的结构还是有点困惑 |
9/2019.10.25 | 25个小时 | 550 | 使用while语句循环,自定义函数,参数 | 自定义函数还是·不太明白 |
10/2019.11.1 | 20个小时 | 700 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 关于字符型的代码还是不太明白 |
11/2019.11.7 | 15个小时 | 1000 | 熟悉多分支结构switch语句的使用 | 对swith语句的使用还有一定的困惑 |
12/2019.11.15 | 14个小时 | 1200 | 熟悉使用while和do-while结构解决问题 | 对while语句的使用还有一定的疑惑 |
13/2019.11.21 | 15个小时 | 1450 | 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 | 对continue的使用不够熟练,还有很大疑惑 |
14/2019.11.28 | 20个小时 | 1660 | 选择合适的算法、合理的循环结构,熟练的编写程序 | 对字符型函数和abs函数还不是太懂 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
请用思维导图的形式将到目前为止所学的内容进行整理
3.3.2学习体会
代码越来越难了,这次通过写代码,查阅资料,接触到了新的函数,新的long函数和abs函数还需要自己多花点时间去琢磨琢磨,感觉代码的世界越来越奥妙了,自己还有很多要学的地方;
感觉时间很不够用,最近作业很多,事情也很多,有时候走在路上,脑子里面想的都是代码,走路时候手机看的也是代码,还是感觉自己的悟性还不够,还需要加大自学的力度,抓住空闲的时间