Задача на ввод числа в диапазоне и потом работой с этим числом

Пользователь вводит целое число в диапозоне от 1 до 999999 если число не четное, то вывести сообщение "Сhislo ne chetnoe" если число четное разбить число на разряды занести эти числа в массив с помощью функции sort отсортировать элементы массива. Вот что я написал, но застрял.

    #include <iostream>
using namespace std;
int main() {
    int chislo;
    cout << "Vvedite chislo ot 1 do 999999: ";
    cin >> chislo;
    int dlinaChisla = 0;
    for (chislo; chislo > 0; chislo /= 10) {
        dlinaChisla = dlinaChisla + 1;
    }
    int array[dlinaChisla];
    
    if ((chislo % 2) != 0) {
        cout << "Сhislo ne chetnoe";
    } else if ((chislo % 2) == 0){
        for (chislo; chislo > 0; chislo = chislo / 10) {
            array[dlinaChisla] = chislo % 10;
            dlinaChisla--;
        } } else {
            cout << "Vvedite chislo tolko v diapazone ot 1 do 999999";
        }
        
    return 0;
    }

Ответы (1 шт):

Автор решения: Denys Kasianov
#include <iostream>
#include <algorithm> 
using namespace std;
int main() {
    int chislo;
    cout << "Vvedite chislo ot 1 do 999999: ";
    cin >> chislo;
    std::string s = to_string(chislo);
    int* array = new int[s.size()];

    if ((chislo % 2) != 0) {
        cout << "Сhislo ne chetnoe";
    }
    else {
        for (int i = 0; i < s.size(); i++) {
            array[i] = chislo % 10;
            chislo /= 10;
        }
        sort(array, array + s.size());
        for (int i = 0; i < s.size(); ++i)
        cout << array[i] << " ";
    }

    return 0;
}
→ Ссылка