Задача на ввод числа в диапазоне и потом работой с этим числом
Пользователь вводит целое число в диапозоне от 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;
}