首页 > 代码库 > 第九次作业<补>

第九次作业<补>

1.做出来的有点小问题,应该在按完f5之后直接弹出“请输入字符串:”,然而我这个只有输入了字符串之后才会显示

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

2.冒泡排序

#include <stdio.h>
#include <string.h>
void str()
{
    char a[50];
    int length,j,i,temp;
    printf("请输入数字(个数<=50):");
    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()
{
    str();
    return 0;
}

3.选择排序

#include <stdio.h>
#include <string.h>
void sel()
{
    char a[50];
    int length,i,j,temp,min;
    printf("请输入一串字符串:(字数<+50)");
    scanf("%s",a);
    length=strlen(a);
    for(i=0;i<=length;i++)
    {
        min=i;
        for(j=min+1;j<length;j++)
        {
            if(a[j]<a[min])
                min=j;
        }
        temp=a[i];
        a[i]=a[min];
        a[min]=temp;
    }
    printf("按升序排列后:");
    for(j=0;j<=length;j++)
        printf("%c",a[j]);    
}
int main()
{
    sel();
    return 0;
}

4.上课的时候没听懂。。。。

 

第九次作业<补>