xdoj 164 转换排序

#include <stdio.h>
#include <string.h>

int main() {
    int N;
    char str[80] = { 0 };
    char t;
    scanf("%s", str);
    strupr(str);
    N = strlen(str);
    //跳过特定位置的冒泡法排序
    for (int i = 0; i < N - 1; i++)
    {
        for (int j = 0; j < N - 1 - i; j++)
        {
            if (str[j] >= 'A' && str[j] <= 'Z')//判断是否是大写字母
            {
                for (int c = j; c < N; c++)//如果str[j]是大写字母,则从str[j]开始向后逐个判断是否也是大写字母
                {
                    if (str[c] >= 'A' && str[c] <= 'Z')//如果碰到大写字母
                    {
                        if (str[j] > str[c])//则进行冒泡法排序,但[j+1]变成[c]
                        {
                            t = str[j];
                            str[j] = str[c];
                            str[c] = t;
                        }
                    }
                }
            }
        }
    }
    printf("%s", str);
    return 0;
}

上一篇:Codeforces Round #737 (Div. 2)


下一篇:07 MPLS VPN与OSPF防环机制