Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
B13
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 23
#1

Cортировка цифр - C++

07.05.2009, 11:59. Просмотров 644. Ответов 7
Метки нет (Все метки)

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами (Задача без Использования массивов)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2009, 11:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Cортировка цифр (C++):

Cортировка в файле
Подскажите как можно сделать сортировку в файле по алфавиту.Если я записываю...

Cортировка массива
Здравствуйте! Существует задание: Дан массив n действительных чисел. Если...

Cортировка массива.
помогите с кодом, а то завтра надо уже сдать 1)При записи отсортированный...

Cортировка Шелла
надо перевести на метод шелла #include <iostream> #include <cstdlib> ...

Cортировка матриц
Здраствуйте! Задание такое: отсортировать по возрастанию 1 рядок и 2 столбец...

Cортировка массива.
Доброго вечера. представлен массив ,не четные элементы данного массива нужно...

7
kirill29
2064 / 1227 / 169
Регистрация: 01.02.2009
Сообщений: 2,842
07.05.2009, 12:58 #2
Для начала тебе нужно определить цифры в твоем числе. Допустим, что мы работаем с пятизначным числом. Код выглядит примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
        {
            Console.WriteLine("Ввести число");
            int x = int.Parse(Console.ReadLine());
            int a, b, c, d, e;
            a = x / 10000;
            b = x / 1000 % 10;
            c = x / 100 % 10;
            d = x / 10 % 10;
            e = x % 10;
            
        }
0
B13
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 23
07.05.2009, 13:05  [ТС] #3
это ты на Visual С++ написал

Добавлено через 3 минуты 35 секунд
это задача по структурному программированию мне её надо на Visual С++ (Windows Application)
0
kirill29
2064 / 1227 / 169
Регистрация: 01.02.2009
Сообщений: 2,842
07.05.2009, 13:15 #4
Эта часть кода на C#.
0
B13
0 / 0 / 0
Регистрация: 07.05.2009
Сообщений: 23
07.05.2009, 13:36  [ТС] #5
а мне надо Visual C++
0
XuTPbIu_MuHTAu
Эксперт С++
2234 / 749 / 25
Регистрация: 27.05.2008
Сообщений: 1,498
07.05.2009, 13:40 #6
kirill29, это раздел C/C++.

B13,Одна тема - одна задача.Создайте еще одну тему для обсуждения второй задачи. И назовите ее так,чтобы она отражала суть задачи.Спасибо.
0
kirill29
2064 / 1227 / 169
Регистрация: 01.02.2009
Сообщений: 2,842
07.05.2009, 13:44 #7
Точно. Сразу не посмотрел. С++ не изучал, поэтому засорять тему не буду.
0
XuTPbIu_MuHTAu
Эксперт С++
2234 / 749 / 25
Регистрация: 27.05.2008
Сообщений: 1,498
07.05.2009, 14:02 #8
Код работает,оптимизацию оставляю тебе.
Код
#include <stdio.h>
// возвращает p-ю степень 10
int dpow(int p ) {
    int a = 1;
    for(int i=0;i<p;i++)
        a*=10;
    return a;
};
//возвращает количество цифр в числе a
int NumberOfDigits(int a) { 
    int i=1;//одна то точно есть
    while( (a/=10) > 0 ) //делим на 10 пока цифры не кончатся
        i++;
    return i;
};
//получает i-ю цифру справа в числе a
int GetDigit(int a,int i) {
    while(i>0) { 
        a/=10;
        i--;
    };
    return a % 10;
};
//меняет местами i-ю и j-ю
void SwapDigits(int *a,int i,int j ) {
    int d1 = GetDigit(*a,i);
    int d2 = GetDigit(*a,j);
    *a-= d1*dpow(i);
    *a-=d2 * dpow(j);
    *a+= d1*dpow(j);
    *a+= d2*dpow(i);
};
//сортирует ( пузырьком:)  )
void Sort(int *a) {
    int n = NumberOfDigits(*a);
    for(int i=0;i<n;i++) {
        for(int j=i+1;j<n;j++) {
            if( GetDigit(*a,i) < GetDigit(*a,j) )
                SwapDigits(a,i,j);
        };
    };
};
//просто тест.
int main() {
    int a =958321345;
    Sort(&a);
    printf("%d",a);
    return 0;
};
1
07.05.2009, 14:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2009, 14:02
Привет! Вот еще темы с решениями:

Cортировка двусвязного списка
Ну, в общем задание в названии. Нужно отсортировать двусвязный список, методом...

Cортировка простыми вставками
Продемонстрируйте работу метода сортировки простыми вставками по возрастанию....

Cортировка методом Шелла
Нужно выполнить сортировку 5-видов, 4 нормально работают, а 5 (методом Шелла)...

Cортировка динамической матрицы
Отсортировать каждую строку динамической матрицы по возрастанию и вывести новую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru