第十四、十五周作业
要求二
题目 14、1--7-1 数组中偶数的和
1、实验代码
#include <stdio.h> int main(void){ int i,sum=0; int a[10]; for(i=0;i<10;i++){ scanf("%d",&a[i]); } for(i=0;i<10;i++){ if(a[i]%2==0) sum=sum+a[i]; } printf("s=%d",sum); return 0; }
2、设计思路
(1)主要描述
第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。
第二步:定义一个大的数组空间a[10],在定义循环需要的整型变量i,sum(和)。
第三步:使用for循环将数组中的数据输入进去,如果满足a[i]%2==0,则证明输入的这个数据是偶数,满足后在循环中进行加和。
第四步:循环到数据空间到头时候,结束,输出数组中偶数的和sum。
(2)流程图
3、本题调试过程碰到的问题及解决办法
提示截图:
解决:此题没有什么问题,可以用多种方式写出来、
题目 14、2--7-1求最大值及其下标
1、实验代码
#include <stdio.h> int main(void) { int i,index,n; printf("Enter n:"); scanf("%d",&n); int a[n]; printf("Enter %d integers:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); index=0; for(i=0;i<n;i++) if(a[i]>a[index]) index=i; printf("max is %d\n index is %d\n",a[index],index); return 0; }
2、设计思路
(1)主要描述
第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。
第二步:定义变量i,index(下标标示),max(最大值),定义数组a[n]。
第三步:使用for循环输入数据,让index=0相当于保证输入的数据从第一个开始。
第四步:再次使用for循环,用if语句判断出符合要求的数组中的数据,如果a[i]>a[index],那么就进行交换,保证max一直最大。
第五步:最后输出最大值及其下标。
(2)流程图
3、本题调试过程碰到的问题及解决办法
错误提示截图:
解决:那个max没有给出定义,还有没有初始输入,要先输入数据的。我也在百度上看了这道题的代码,又经过问同学解决的。
题目 15、1--7-2方阵左下角元素的和
1、实验代码
#include <stdio.h> int main(void) { int i,j,sum=0; int a[4][4]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { scanf("%d ",&a[i][j]); if(j<=i) {sum=sum+a[i][j];} } } printf("%d",sum); return 0; }
2、设计思路
(1)主要描述
第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。
第二步:定义变量i,j,sum,同时定义一个数组a[4][4]就相当于申请这么大一个空间。
第三步:定位出j<=i的位置,使用for的多层循环输入符合要求的数据,进行循环累加。
第四步:最后输出方阵左下角元素的和sum。
(2)流程图
3、本题调试过程碰到的问题及解决办法
错误提示截图:
解决:虽然在Dec++上没有错误,但在PTA上是不正确的,此题由于做PTA时忘记了截图。在c++上没有错误说明程序写的没有错误,但在PTA上由于和题意不符,所以会编译错误,经过检查发现如上圈出来的问题,题意要求输入4行4列的方阵,每行第一个数前没有空格,每行的每个数之间各有一个空格。但是我的并没有空,还有就是第二个圈点出来的那个,输出不能放入循环体里。
题目14--7-4 fibonacci数列
1、实验代码
#include <stdio.h> int main(void){ int i; int fib[12]={1,1}; printf("%6d",fib[0]); printf("%6d",fib[1]); for(i=2;i<12;i++){ fib[i]=fib[i-1] + fib[i-2]; printf("%6d",fib[i]); if((i+1)%3 == 0){ printf("%c",'\n'); } } return 0; }
2、设计思路
(1)主要描述
第一步:审题,带着题干给的输入输出格式去思考,打出大体框架。
第二步:定义一个数组为十二的空间,直接给出第一个数据,第二个数据的值,定义整型变量i。
第三步:根据要求,没有输入,利用for循环和if进行判断。
第四步:输出 使用%6d的格式输出;注意输出最后一个数字后,有一个换行。所以用%6d输出结果。
(2)流程图
3、本题调试过程碰到的问题及解决办法
提示截图:
解决:这个题目老师上课讲过的,通过自己敲及看老师的ppt,思考解决出来的。
提交列表:
要求三
上传截图:
我的coding地址:http://coding.net/u/linmeng123
要求四
个人总结
(1)我学习到的内容:本周主要学习了数组,先学习了数组的定义,数组元素的引用,数组的初始化,及一些对应的程序。我们从一维数组开始学起,逐渐深入学习了二维数组,还学习了选择法排序及重要的冒泡排序,及一些数组中的数逆序存放,记录下标一些程序。
我的收获:让我觉得用数组,比以往老式写代码方便多了,用起来很好,本周我最大大收获就是学习了数组,及其对它的应用,使得我对编程进一步产生了兴趣。本周我觉得收获最大的就是上一次课,老师带着一边敲,一边提问,让同学来说,并一步一步来改,我听懂了好多,感觉平时光听效率高很多,希望以后多一些这种方式上课。
(2)我认为的难点:选择法和冒泡法不太理解,有点复杂,可能是我没有真正理解,如果理解可能一环套一环很简单吧。
不明白的:复杂一点的我总是蒙,可能我内心存在对复杂程序的恐惧,但每一次PTA作业我都自己努力去做,但每次都是有错误,都是找会的同学,帮我改半天。不明白的就是带有复杂的,比如冒泡和选择排序。别的看看还能扣明白。
要求五
互评和学习进度
1、点评的同学:
孙娜:http://www.cnblogs.com/sun-na-/
张乐;http://www.cnblogs.com/1999-09-22/
汪志恒:http://www.cnblogs.com/wangzhiheng/
截图
2、表格
时间 | 代码行数 | 代码时间 | 博客字数 | 博客时间 | 知识点 |
11.10 | 30 | 15 | 0 | 0 | for |
11.15 | 35 | 22 | 150 | 15 | for,交换,记录下标 |
11.17 | 46 | 35 | 260 | 45 | 选择,冒泡排序 |
11.19 | 50 | 60 | 300 | 90 | 矩阵,循环移动 |
折线图
posted on 2017-12-02 13:52 linmenga5 阅读(304) 评论(10) 编辑 收藏 举报