张照行 的第九次作业

Posted 16-3张照行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了张照行 的第九次作业相关的知识,希望对你有一定的参考价值。

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("该字符串是对称的\n");
    else
        printf("该字符串不是对称的\n");    
}
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;
}

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

以上是关于张照行 的第九次作业的主要内容,如果未能解决你的问题,请参考以下文章

张照行的第四次作业

张照行 的第七次作业

张照行 的第五次作业

第九次作业

201621123042《java程序设计》第九次作业

白钰铭的第九次作业