第14,15周作业
Posted 何宇诗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第14,15周作业相关的知识,希望对你有一定的参考价值。
要求二
题目7-1数组中偶数的和
#include <stdio.h> int main() { int a[10]; int i,s=0; for(i=0;i<10;i++) { scanf("%d",&a[i]); if (a[i]%2==0) { s=a[i]+s; } } printf("s=%d",s); return 0; }
2.设计思路
(1)题目算法
第一步:定义数组a[10],循环变量i,总和s。
第二步:定义变量初始值s=0;
第三步:找到循环体s=s+a[i],i++;
第四步:输出s。
(2)流程图
3.本题调试过程及解决方法
错误截图
遇到问题:打不出正确结果。
解决方法:自己仔细琢么反复实验,最后败在了没有给s定义初始值上。
题目7-3将数组中的数逆序存放
1.实验代码
#include<stdio.h> int main() { int n; scanf("%d",&n); int i,a[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-1;i>0;i--) printf("%d ",a[i]); printf("%d",a[0]); return 0; }
2.设计思路
(1)题目算法
第一步:定义变量n,i,a[n];
第二步:输入循环结构(i=0,i<n;i++),并输入a[i];
第三步:输入另一个循环使程序逆向运行。(i=n-1;i<n;i--)
第四步:输出a[i]以及a[0];
(2)流程图
3遇到的问题及解决方法
错误截图
遇到的问题:没有完全理解提意。
解决方法:仔细阅读题目,询问了同学(他和我说直接定义一个i,后面的循环体需要换成(i=n-1,i<n;i--)),最后成功编译出正确结果.
7-5冒泡法排序
1实验代码
#include <stdio.h> int main() { int N,K,i,j,x,t;
scanf("%d %d",&N,&K);
int a[N]; for(i=0;i<N;i++) { scanf("%d",&a[i]); } for(i=0;i<N;i++) { for(j=0;j<N-i-1;j++) { if(a[j+1] <a[j]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } x++; if(x==K) break; } for(i=0;i<N;i++) { if(i<N-1) { printf("%d ",a[i]); } else { printf("%d",a[i]); } } return 0; }
2 设计思路
(1)题目算法
第一步:定义循环变量i,j以及循环次数k,N,常变量t,数组a[N];
第二步:在(i=0;i<N;i++)的条件下输入a[i];
第三步:比较a[0]与a[1];如果a[0]>a[1]则交换,否则不交换,以此类推直到把最大值放到最后;
第四步:在依次进行第二趟排序最大值放到第n-1个位置,共进行n-1趟排序。
第五步:输出a[i];
(2)流程图
3遇到的问题及解决方法
错误截图
遇到的问题:不知道如何才能出现第几次排序出现的结果
解决方法:增加一个变量x,在循环之后输入,如果x=k,则直接跳出;
7-3 求矩阵的局部极大值
1.实验代码
#include <stdio.h> int main() { int M; int N; scanf("%d %d",&M,&N); int a[M][N]; int i,j,m,n,flag=0; for(i=0;i<M;i++) { for(j=0;j<N;j++) { scanf("%d",&a[i][j]); } } for(i=1;i<M-1;i++) { for(j=1;j<N-1;j++) { if(a[i][j]>a[i-1][j]&&a[i][j]>a[i][j-1]&&a[i][j]>a[i][j+1]&&a[i][j]>a[i+1][j]) { m=i+1; n=j+1; printf("%d %d %d\\n",a[i][j],m,n); flag = 1; } } } if(flag == 0) { printf("None %d %d",M,N); } return 0; }
2.设计思路
(1)题目算法
第一步:定义变量i,j,m,n,,M,N,t,flag=0;
第二步:输入M,N,输入a[i][j];
第三步:把满足的条件放在循环中(中间数大于四周上下左右的数);
第四步:如果flag=0则输出“None M N”否则输出“a[i][j],m,n."
(2)流程图
3.遇到问题及解决方法
错误截图
遇到的问题
输出结果串码打出
解决问题方法
把scanf()放到a[M][[N]前面就可以了。
要求三
git地址
项目截图
要求四
个人总结
(1)本周你学习了哪些内容?
一维数组
二维数组
收获了什么?
懂得如何定义数组初始化。
(2)那些是难点?
冒泡排序和选择排序就是难点,很难理解,最后只能靠背。
哪些知识点还不明白?
不懂冒泡排序第二层循环的意义;
选择排序也看不太明白
这两个排序的流程图不太会画。
要求五
1.我评论的博客
王佳乐
姚爽
孙娜
2.表格及折线图
折线图
表格
以上是关于第14,15周作业的主要内容,如果未能解决你的问题,请参考以下文章