这是哪里出错了?字符排序

说一下好吗?问题代码如下:

img

img

#include<stdio.h>
#include<string.h> 
int main()
{
    char a[1000];
    scanf("%s",&a);
    int len;
    len=strlen(a);
    int i,j,p;
    for (i=0;i<len-2;i+=2)
    {
        for (j=i+2;j<len;j++)
        {
            if(a[j]<a[i])
            {
                p = a[i];
                a[i]=a[j];
                a[j]=p;
            }
        }
    }
    printf("%s",a);
    return 0; 
}

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1000]={0};//字符串初始化
    scanf("%s",a);//读入字符串用a就行,a是数组首地址
    int len;
    len=strlen(a);
    int i,j,p;
    for(i=0;i<len-2;i+=2)
    {
        for(j=i+2;j<len;j+=2)//j+=2而不是j++
        {
            if(a[j]<a[i])
            {
                p=a[i];
                a[i]=a[j];
                a[j]=p;
            }
        }
    }
    printf("%s",a);
    return 0;
}