第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/

 学习进度表:

 

posted @ 2017-12-03 20:36  Suzy.F  阅读(414)  评论(7编辑  收藏  举报