m0_61105116
2021-09-19 11:14
采纳率: 63.6%
浏览 62

这个怎么用c语言实现?

img

  • 收藏

3条回答 默认 最新

  • 快乐鹦鹉 2021-09-19 11:16
    已采纳

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

    #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;   
    }
    
    
    已采纳该答案
    打赏 评论
  • qfl_sdu 2021-09-19 11:23

    代码如下:

    
    #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;
    }
    
    打赏 评论
  • qzjhjxj 2021-09-19 13:00

    供参考:

    #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;
    }
    
    
    打赏 评论

相关推荐 更多相似问题