• 第十一次作业总结


    实验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.选择排序:

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

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

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

    三.实验心得:

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

  • 相关阅读:
    $POST数组论证($GET || $COOKIE || $REQUEST 同理)
    PHP之preg_replace()与ereg_replace()正则匹配比较讲解
    PHP之mysql_real_escape_string()函数讲解
    浅析白盒审计中的字符编码及SQL注入
    PHP之list()函数讲解
    PHP之implode与explode函数讲解
    PHP之Error与Logging函数讲解
    Nextcloud私有云盘在Centos7下的部署笔记
    Linux下路由配置梳理
    实验c语言不同类型的指针互用(不推荐只是学习用)
  • 原文地址:https://www.cnblogs.com/yanmojie/p/6139444.html
Copyright © 2020-2023  润新知