对字符数组进行冒泡排序即可
#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;
}