这个怎么用c语言实现?

img

对字符数组进行冒泡排序即可

#include <stdio.h>
#include <string.h>
int main()
{
    char a[21] = {0};
    int i,j,len;  
    char c;
    printf("请输入一串数字:");
    scanf("%s",a);
    len = strlen(a);
    for(i=0;i<len-1;i++)
        for(j=0;j<len-i-1;j++)
        {
            if(a[j] > a[j+1])
            {
                c = a[j];   
                a[j] = a[j+1];
                a[j+1] = c;
            }
        }
    for(i=0;i<len;i++)
        printf("%c ",a[i]);
    printf("\n");
    return 0;   
}

代码如下:


#include <stdio.h>
#include <string.h>
int main()
{
    char buf[20] ={0},ch;
    int len ,i,j;
    scanf("%s",buf);
    len = strlen(buf);
    for (i=0;i<len-1;i++)
    {
        for(j=0;j<len-1-i;j++)
        {
            if(buf[j] > buf[j+1])
            {
                ch = buf[j];
                buf[j] = buf[j+1];
                buf[j+1] = ch;
            }
        }
    }
    for(i = 0;i<len;i++)
    {
        if(i < len -1)
            printf("%c ",buf[i]);
        else
            printf("%c\n",buf[i]);
    }
    return 0;
}

供参考:

#include <stdio.h>
int main()
{
   char a[21],tmp;
   int  i,j;
   printf("请输入一串数字:");
   scanf("%s",a);
   for(i=0;a[i]!='\0';i++)
   {
       for(j=i+1;a[j]!='\0';j++)
           if(a[i]>a[j])
           {
              tmp = a[i];
              a[i]= a[j];
              a[j]= tmp;
           }
   }
   for(i=0;a[i]!='\0';i++)
       printf("%c%d",i==0?'\r':' ',a[i]-'0');
   printf("\n");
   
   return 0;
}