写一函数,对输入的10个字符按由小到大排序,用指针作参数。

写一函数,对输入的10个字符按由小到大排序,用指针作参数。


#include <stdio.h>

void sort(char* p,int n)
{
    int i,j;
    char ch;
    for (i=0;i<n-1;i++)
    {
        for (j=0;j<n-1-i;j++)
        {
            if(*(p+j) > *(p+j+1))
            {
                ch = *(p+j);
                *(p+j) = *(p+j+1);
                *(p+j+1) = ch;
            }
        }
    }
}

int main()
{
    char buf[12]={0};
    gets(buf);
    sort(buf,10);
    printf("%s",buf);
    return 0;
}

用冒泡排序法就行了,参数用char*

#include <stdio.h>
#include <string.h>
void sorts(char *p)
{
    int i,j;
    char c;
    int n = strlen(p);
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(p[j] > p[j+1])
            {
                   c = p[j];
                  p[j] = p[j+1];
                  p[j+1] = c;
            }
        }
}
int main()
{
    char a[100];
    gets(a);
    sorts(a);
    printf("%s",a);
    return 0;
}