第14 15周作业
7-2 查找整数
·插入代码
#include<stdio.h> #define N 20 int main() { int i,n,x,a[N],flag; scanf("%d %d",&n,&x); for(i=0;i<n;i++) { scanf("%d",&a[i]); } flag=0; for(i=0;i<n;i++) { if(a[i]==x) { flag=1; printf("%d",i); break; } } if(flag==0) { printf("Not Found"); } }
·设计思路
(1)描述算法
第二步:定义一个长度为20的数组,将i,n,x,flag定义为整型。
第二步:通过if 循环语句依次查找元素,如果找到则输出该元素及对应位次,若没找到,则输出Not Found。
(2)流程图
·本题遇到的问题与解决办法
问题:不知道break的作用
解决办法:经过老师讲解明白了是为了防止输出相同数。
7-3 求最大值及其下标
·插入代码
#include<stdio.h> #define N 10 int main() { int i,n,a[N],idx; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } idx=0; for(i=1;i<n;i++) { if(a[i]>a[idx]) { idx=i; } } printf("%d %d",a[idx],idx); return 0; }
·设计思路
(1)描述算法
第一步:定义一个长度为10的数组,用idex记录最大值对应的下标,a[idex]就是最大值。
第二步:将最大值与每个元素依次进行比较
第三步:输出最大值及下标。
(2)流程图
·本次遇到的问题及解决办法
问题:判断顺序弄反了
办法:检查运行后发现错误。
7-3 选择法排序
·插入代码
#include<stdio.h> int main() { int n,i,k,x,j; scanf("%d\n",&n); int a[n]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<(n-1);i++) { k=i; for(j=i+1;j<n;j++) if(a[j]>a[k]) { k=j; } if(i!=k) { x=a[i];a[i]=a[k];a[k]=x; } } for(i=0;i<n;i++) { if(i==0) { printf("%d",a[i]); } else printf(" %d",a[i]); } return 0; }
·设计思路
(1)描述思路
第一步:定义一个数组,根据内外循环的不同情况来判断每趟重复
第二步:进行选择然后再输出结果
(2)流程图
·本题遇到的问题及解决办法
问题:在执行每趟重复的时候出现了问题
解决办法:通过查找课本和询问同学后弄清楚了。
我的git的地址:
https://git.coding.net/Aspirer1/14-15
个人总结
本周学习了数组,包括一维数组和二维数组,学习了关于数组的初始化和一些相关的问题;主要是在二维数组矩阵的时候有点不太明白,要针对这一问题再多加练习。
点评同学:
孙铭婧:http://www.cnblogs.com/sun031915/
吴晓明: http://www.cnblogs.com/gu-an-cheng-wxm/
张心悦:http://www.cnblogs.com/zxy980612/
学习进度表: