我在这个课程的目标是 | 比较全面的掌握c语言知识,自己设计编程 |
这个作业在那个具体方面帮助我实现目标 | 编写设计程序的思路和逻辑 |
参考文献 | 《c语言程序设计教程》 |
csdn社区 |
1.PTA作业
1.PTA实验作业
1.1 利用数组计算斐波那契数列
内容:本题要求编写程序,利用数组计算菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证计算结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如::1,1,2,3,5,8,13,…。
输入格式:
输入在一行中给出一个整数N(1≤N≤46)。
输出格式:
输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。
如果输入的N不在有效范围内,则输出"Invalid."。
1.1.1数据处理
数据表达:定义整型变量i,n,a[10],%d代表输入整型数据,%11d代表输出一个占11位的整型数据。
数据处理:
1.1.2实验代码截图![在这里插入图片描述](https://img-blog.csdnimg.cn/1dab557d7715489096f54957283a3f90.png#pic_center)
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
7 | 1 1 2 3 5 | 输入的n为7,在题目要求的有效范围内,所以输出斐波那契数列的前7项,每个数占位11,并且输出5个数换行 |
8 13 | ||
0 | Invalid. | 输入的n为0,不在题目的有效范围内,输出Invalid. |
1.1.4PTA提交列表及说明
提交列表说明:
1.在编译错误时,有一行末尾忘记打“;”
2.在部分正确时,没有在输出时的%d前加上11,而且在%d后打了一个空格,但是题目没有要求打空格,所以错误。
1.2查找满足条件的所有整数
内容:本题要求编写程序,将输入的n个整数存入数组a中,然后在数组a中查找给定的x。如果数组a中的元素与x的值相同,输出所有满足条件的元素的下标(下标从0开始);如果没有找到,输出“Not Found”。
输入格式:
第1行输入一个正整数n(0<n≤10)和一个整数x,第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。
输出格式:
如果找到,输出所有与x的值相同的元素的下标,每行输出一个下标;如果没有找到,在一行中输出“Not Found”。
1.2.1数据处理
数据表达:定义整型变量i,n,a[10],flag,flag用于判断是否为1or0,%d表示输入和输出整型数据。
数据处理:
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 9 | 1 | 输入的n为5,x为9,所以在后续输入5个数据,并在这五个数据里查找与9相等的数据,并输出其下标,输出一个下标并换行 |
2 9 8 1 9 | 4 |
1.2.4PTA提交列表及说明
提交列表说明:
1.编译错误时"<stdio.h>“,少打了一个“>”。
2.答案错误时,没有定义flag来表示1or0。
3.部分正确时,在第一条判断语句和第二条判断语句中只打了一个“=”。
2.代码互评
同学的代码
自己的代码
1.同学的代码在给定第一二个数组的值时,是先定义数组再分别给其赋值,我在定义数组时同时赋值第一二个数组
2.我将输出5个数据就换行的语句嵌套在if语句中,同学则将这个语句嵌套在else语句中
3.我的代码写了2个if语句,同学的代码中用了3个if语句
4.同学用一个if语句写出了如果一行中输出的数不满5个,则在缺少的地方输出空格,我没有将这个语句在代码中写出来
同学的代码
同学的代码
我的代码
1.在定义数组a时,我和伍同学定义了有10个数据元素的int型数据a,姚同学定义的是有n个数据元素的int型数据a
2.伍同学的代码中使用了两条for循环语句,我和姚同学用了一条for循环语句
3.姚同学在代码中用的c++,我和伍同学用的flag=1。
4.我和姚同学在代码中使用了两条if语句,伍同学的代码中用了四条if语句。
3学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 14h | 70 | 学习了c语言的数据存储与数据表示 | 内容有点多,有时候分不清 |
第二周 | 14.5h | 250 | 学习数据的输入输出的格式和顺序程序设计 | double型数据和float数据的输出格式有时会打错 |
第三周 | 16h | 230 | 选择结构程序设计 | 不知道在哪种情况下该用哪种选择语句 |
第四周 | 15h | 160 | 循环结构程序设计 | 有时对for语句中i的初值不清楚 |
第五周 | 15.5h | 150 | 数组在程序中的使用 | ,数组的定义和赋值 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
1.做题的思路还是不太清晰,逻辑性不强,需要多画流程图,多多写代码
2.很多细节上的东西容易忽视,在做题过程中容易出错,需要更加仔细,经常性的忘记在语句末尾加上分号,或者是没有写输出语句
3.PTA提交题目时显示格式错误大部分情况下是输出上出了问题,这个时候要检查输出格式,比如说是否多打了空格,或者是没有打空格
4.%d前加数字对数据的长度造成影响,转换字符%d前的数字比输出的数据大,欠缺的长度会用空格来补充。若转换字符%d前面的数字比输出的数据小,那么输出的数据就会不完整
5.输出几个数据换行,假如定义一个b代表输出数据个数,那么输出5个数据换行就表示为
if(b%5==0)
printf(“\n”)
6.每个数占11位,就在输出时在%d前加上11,%11d
7.从学习c语言到目前为止,已经学了很多知识,但不能很好的运用,主要还是在脑中没有形成系统的体系,知识碎片化,需要找时间去整合学过的知识,不然写题会很累