请问这个怎么做呢,boss给个代码好不好,,Ծ^Ծ,,

img

#include <stdio.h>
int main()
{
    char buf[100]={0};
    char zm[100]={0};
    char sz[100]={0};
    char tp;
    int ot = 0;
    int i = 0,zt = 0,nmb = 0,j;
    gets(buf); //读取一行字符
    while(buf[i])
    {
        if( (buf[i]>='A' && buf[i] <='Z') || (buf[i]>='a' && buf[i] <='z') )
            zm[zt++] = buf[i] + 3;
        else if(buf[i]>='0' && buf[i] <='9')
            sz[nmb++] = buf[i];
        else
            ot++; //空格及其它字符计数
        i++;
    }

    //排序
    for (i=0;i<nmb-1;i++)
    {
        for(j=0;j<nmb-i-1;j++)
        {
            if(sz[j] < sz[j+1])
            {
                tp = sz[j];
                sz[j] = sz[j+1];
                sz[j+1] = tp;
            }
        }
    }
    //输出字母
    printf("%s\n",zm);
    printf("%s\n",sz);
    printf("空格及其它字符的个数:%d\n",ot);
    return 0;
}