Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- using namespace std;
- int main()
- {
- short num; // Создаю переменную для хранения введенного числа, переменную для хранения числа введенных цифр
- unsigned short num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,counter; // и переменные для хранения количества введеных цифр одного значения
- num0=num1=num2=num3=num4=num5=num6=num7=num8=num9=counter=0;
- puts ("Введите число, подлежащее сортировке: ");
- while (num!='\n')
- {
- scanf ("%c", &num); // Получаю числа по очереди
- switch (num) // Сортирую числа
- {
- case '0': {++num0; break;} case '1': {++num1; break;}
- case '2': {++num2; break;} case '3': {++num3; break;}
- case '4': {++num4; break;} case '5': {++num5; break;}
- case '6': {++num6; break;} case '7': {++num7; break;}
- case '8': {++num8; break;} case '9': {++num9; break;}
- case '\n': break;
- default: {puts("\n\nВводи числа, выблядок!"); break;}
- }
- ++counter;
- }
- long long result = 0, degree = 1; // Создаю переменные для хранения итогового числа и рассчета разрядов
- bool doCycle = 1; // Создаю переменную для прерывания цикла
- for (; counter != 2; --counter) {degree *= 10;} // Высчитываю максимальный разряд числа
- while (doCycle)
- {
- while (num9) {result += (9*degree); degree/=10; --num9;}
- while (num8) {result += (8*degree); degree/=10; --num8;}
- while (num7) {result += (7*degree); degree/=10; --num7;}
- while (num6) {result += (6*degree); degree/=10; --num6;}
- while (num5) {result += (5*degree); degree/=10; --num5;}
- while (num4) {result += (4*degree); degree/=10; --num4;}
- while (num3) {result += (3*degree); degree/=10; --num3;}
- while (num2) {result += (2*degree); degree/=10; --num2;}
- while (num1) {result += (1*degree); degree/=10; --num1;}
- while (num0) {result += (0*degree); degree/=10; --num0;}
- doCycle = 0;
- }
- printf ("\nРезультат сортировки равен: %lld\n\n", result);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement