• 张照行 的第九次作业


    1.果然第七次作业好难啊,做完之后增加了好多知识,现在用到一点都不费力啊,很方便就写出来了

    #include <stdio.h>
    #include <string.h>
    void aaa()
    {
        char a[100];
        int length,time=0,i;
        printf("请输入字符串:");
        scanf("%s",a);
        length=strlen(a);
        for(i=0;i<length/2;i++)
        {
            if(a[i] != a[length-1-i])
                time++;
        }
        if(time == 0)
            printf("该字符串是对称的
    ");
        else
            printf("该字符串不是对称的
    ");    
    }
    int main()
    {
        aaa();
        return 0;
    }

    2.冒泡排序法,从最后一个开始与前一个依次对比

    #include <stdio.h>
    #include <string.h>
    void aaa()
    {
        char a[100];
        int length,j,i,temp;
        printf("请输入:");
        scanf("%s",a);
        length=strlen(a);
        for(j=0;j<length;j++)
        {
            for(i=length-1;i>0;i--)
            {
                if(a[i]<a[i-1])
                {
                    temp=a[i];
                    a[i]=a[i-1];
                    a[i-1]=temp;
                }
            }
        }
        printf("将其升序排序为:");
        for(i=0;i<length;i++)
            printf("%c",a[i]);    
    }
    int main()
    {
        aaa();
        return 0;
    }

    3.

    #include <stdio.h>
    #include <string.h>
    void aaa()
    {
        char a[100];
        int length,j,i,temp,min;
        printf("请输入:");
        scanf("%s",a);
        length=strlen(a);
        for(j=0;j<length;j++)
        {
            min=j;
            for(i=min+1;i<length;i++)
            {
                if(a[i]<a[min])
                    min=i;
            }
            temp=a[j];
            a[j]=a[min];
            a[min]=temp;
        }
        printf("将其升序排序为:");
        for(i=0;i<length;i++)
            printf("%c",a[i]);    
    }
    int main()
    {
        aaa();
        return 0;
    }

    4.插入排序法。。。老师课上没讲欸,百度之后知道是将一个数目插入该占据的位置,但是代码也就是从第二个开始与左边的对比然后交换,然后敲出来的代码也就和冒泡排序法差不太多,就是循环的条件变了变,不过应该就是这样的吧

    #include <stdio.h>
    #include <string.h>
    void aaa()
    {
        char a[100];
        int length,j,i,temp;
        printf("请输入:");
        scanf("%s",a);
        length=strlen(a);
        for(j=0;j<length;j++)
        {
            for(i=1;i<length;i++)
            {
                if(a[i]<a[i-1])
                {
                    temp=a[i];
                    a[i]=a[i-1];
                    a[i-1]=temp;
                }
            }
        }
        printf("将其升序排序为:");
        for(i=0;i<length;i++)
            printf("%c",a[i]);    
    }
    int main()
    {
        aaa();
        return 0;
    }

    5.希尔排序法。。。说是选做,但是我不写估计又要说我了,然后我就百度,天啊,真的是,我差点以为我连百度百科都看不懂了,弄了好久才弄懂,真的是,好古怪的排序方法,还循环了三次,纠结好半天的说

    #include <stdio.h>
    #include <string.h>
    void aaa()
    {
        char a[100];
        int length,j,i,temp,shell;
        printf("请输入:");
        scanf("%s",a);
        length=strlen(a);
        for(shell= length/2;shell>0;shell/=2)
        {
            for(i=shell;i<length;i++)
            {
                for(j=i-shell;j>=0;j-=shell)
                {
                    if(a[j]>a[j+shell])
                    {
                        temp=a[j];
                        a[j]=a[j+shell];
                        a[j+shell]=temp;
                    }
                }
            }
        }
        printf("将其升序排序为:");
        for(i=0;i<length;i++)
            printf("%c",a[i]);    
    }
    int main()
    {
        aaa();
        return 0;
    }

    心得:唉,果然这种东西还是应该留到星期四来做,要不然做了会纠结,就必须做完才能停,像今天就做到大晚上的,明天还要考试,唉。还不错,相对来说不是太难(我果然是对第七次作业产生阴影了),而且很清楚的讲过,只是那个插入排序法没讲过,然后查了做出阿来后感觉跟冒泡排序法太像了,有点奇怪,但应该也没问题。还有那个希尔排序法,才看的时候一脸蒙蔽啊,还在想要定义多少数组啊,还好事实上不用,三重循环的话想的有点麻烦,循环的条件也麻烦,但是还好,也算是写出来了。大家一起加油吧!

  • 相关阅读:
    Linux(实操篇)--- 实用指令-运行级别和找回root密码
    Python使用文件操作实现一个XX信息管理系统的示例
    python解释器安装教程的方法步骤
    python如何使用代码运行助手
    python 识别登录验证码图片功能的实现代码(完整代码)
    python线性插值解析
    python协程 详解
    maxcompute mapjoin
    spark split节点笔记
    安装和配置hadoop
  • 原文地址:https://www.cnblogs.com/160809332zzh/p/6096215.html
Copyright © 2020-2023  润新知