使用C++完成一个希腊数小程序

题目描述:
定义希腊数:一个数,经过最多10000次交换相邻两数(这也意味着可以选择不交换),所得到的最大数为希腊数。
请您写一个小程序,输出希腊数。
输入:
输入仅一行,包含一个数n。
输出:
输出仅一行,为n的希腊数。
样例输入:
87900
样例输出:
98700
提示:
1<=n<=1e9


#include<iostream>
#include<string.h>
using namespace std;
int main() {
    char str[20]="\0";
    cin >> str;
    //大->小
    int i = 0, j = 0, len = strlen(str);
    int mark; char c;
    for (i = 0; i < len - 1; i++) {
        mark = 0;
        for (j = len - 1; j > i; j--) {
            if (str[j] > str[j - 1]) {
                mark = 1;
                c = str[j];
                str[j] = str[j - 1];
                str[j - 1] = c;
            }
        }
        if (mark == 0)
            break;
    }
    cout << str << endl;
}