zoukankan      html  css  js  c++  java
  • 第十一次作业总结

    实验1.冒泡法进行排序

    #include<stdio.h>
     void sort(int a[80],int n)
    {
         int i,j,t;
         for(i=0;i<n;i++)
         {
            for(j=i+1;j<n;j++)
            {
                if(a[i]>a[j])
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            
            }    
        }
         
    }
     int main()
    {
        int a[80],n,i;
        printf("输入一个整数n:");
        scanf("%d",&n);
        printf("输入%d个数:",n);
        for(i=0;i<n;i++)
        {
        scanf("%d",&a[i]);
        }
        return 0;
    }

    实验2.在数组中查找指定元素

    #include<stdio.h>
    int search(int list[80],int n,int x)
    {
        int i;
        for(i=0;i<=n;i++)
        {
            if(x==list[i])
            printf("Index is %d
    ",i);
            break;
        }
        if(x!=list[i])
        printf("-1
    ");
    }
    int main()
    {
        int a[80],n,x,i;
        printf("输入元素的个数n:");
        scanf("%d",&n);
        printf("输入数组:");
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        printf("输入待查找元素x:");
        scanf("%d",&x);
        search(a,n,x);
        return 0;
    }

    实验3.报数游戏

    #include<stdio.h>
    void countoff(int n,int m,int out[80])
    {
        int i,j;
        for(i=0;i<n;i++)
        {
            out[i]=i+1;
        }
        while(out[i]<n)
        {
            for(i=0;i<n;i++)
                if(out[i]!=0)
                j++;
                    if(j==m)
                    {
                        printf("%d
    ",out[i]);
                        out++;
                        j=0;
                        out[i]=0;
                    }
                    else if(i==n-1)
        break;
        }
    }
    int main()
    {
        int a[80],x,y;
        printf("输入初始人数n:");
        scanf("%d",&x);
        printf("输入退出位次m:");
        scanf("%d",&y);
        countoff(x,y,a);
        return 0;
    }

    一.知识点总结:

    1.如果有一个实参数组,想在函数中改变此数组的元素的值,实参与形参的对应关系有以下几类情况:

    (1)形参和实参都用数组名

    传递的是实参数组首地址,形参与实参共用同一段内存单元

    (2)实参用数组名,形参用指针变量

    通过指针变量值的改变可以指向实参数组的实参数组的任一元素

    (3)实参和形参都用指针变量

    先使实参指针变量指向数组的首地址,然后将实参的值传给形参,通过指针变量值的改变可以使其指向数组的每个元素

    (4)实参为指针变量,形参为数组名

    设p为指针变量,令p=&a[0],p为实参,对应的形参x为数组名,则函数调用时将p的值传给形参数组名x,也就是使其取得a数组的首地址,使x数组和a数组共用一段内存单元

    2.冒泡排序:

    对一个队列里的数据,挨个进行比较和交换,每次比较出一个当前最大或者最小的值放在队尾,然后继续下次比较,这样就跟冒泡一样,将最大或最小的数从底下“冒出来”,所以称为冒泡排序

    3.选择排序:

    对一个队列里的数据,选出当前最大或者最小的值,然后将他与队首的数据交换,然后从第二个开始,进行相同的操作,但由于他不像冒泡一样需要不停的交换位置,所以会比冒泡快一些

    二.实验过程中遇到的问题及解决方法

          这次作业对于冒泡法排序不太理解,不会使用,上课时老师也只讲了一个例子,所以在课下让同学帮忙讲了讲,弄懂了课上不懂的例子

    三.实验心得:

          在课上老师带着做题,跟着老师做题课下的作业基本上都能完成,这次作业的冒泡排序在课上讲的例子不多,题也做的不多,对冒泡排序还不太理解,所以需要在课下多加练习。

  • 相关阅读:
    算法----(1)冒泡排序
    淘宝爬虫
    爬虫_豆瓣电影top250 (正则表达式)
    爬虫_猫眼电影top100(正则表达式)
    Android 简单调用摄像头
    Android 简单天气预报
    思维模型
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you
    Android studio preview界面无法预览,报错render problem
    Android studio 3.1.2报错,no target device found
  • 原文地址:https://www.cnblogs.com/yanmojie/p/6139444.html
Copyright © 2011-2022 走看看