С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Poulichka
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 20
1

Написать программу для сортировки массива по убыванию суммы цифр элементов

05.12.2013, 00:57. Просмотров 2564. Ответов 2
Метки нет (Все метки)

Написать программу для с++:
Дан массив целых чисел. Написать программу для сортировки массива по убыванию суммы цифр элементов.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 00:57
Ответы с готовыми решениями:

Написать программу для вычисления суммы положительных элементов массива
Дано массив размером 7x5 с элементами действительного(вещественного) типа....

написать программу для вычисления суммы первых пяти элементов массива
написать программу для вычисления суммы первых пяти элементов массива.

Написать программу для вычисления суммы элементов массива с нечетными номерами
В одномерном массиве, состоящем из n вещественных элементов, вычислить: Сумму...

Написать программу для определения максимальной и минимальной суммы двух соседних элементов массива
Дан массив целых чисел Написать программу для определения максимальной и...

Написать программу для вычисления суммы элементов массива, которые имеют парные индексы
Нужно написать программу для вычисления суммы элементов массива, которые...

2
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
05.12.2013, 01:59 2
можно сделать массив пар - в одном поле храним число, в другом - сумму цифр.а потом проходимся sort() и всё
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
05.12.2013, 02:57 3
Лучший ответ Сообщение было отмечено Poulichka как решение

Решение

или так (С++11)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <algorithm>    // std::sort
#include <vector>       // std::vector
#include <iterator>
#include <iostream>
 
using namespace std;
 
int get_digits_sum(int x) {
    if (!x)
        return 0;
    else
        return x % 10 + get_digits_sum(x / 10);
}
 
int func(int a, int b) {
    return get_digits_sum(a) > get_digits_sum(b);
}
 
int main() {
    vector<int> myvector = {12, 43, 56, 32, 112, 5, 77, 8, 999};
    sort(myvector.begin(), myvector.end(), func);
    copy(myvector.begin(), myvector.end(), ostream_iterator<int>(cout, " "));
    return 0;
}
или так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void bubbleSort(int* arr, int size)
{
    int tmp, i, j;
 
    for(i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (get_digits_sum(arr[j + 1]) > get_digits_sum(arr[j])) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 02:57

Написать программу для сортировки массива по возрастанию
Написать программу в с++: Дан массив целых чисел. Написать программу для...

Написать программу для сортировки массива заданного с клавиатуры!
Размерность массива задаем с клавиатуры, элементы массива тоже задаем с...

Сортировка массива по убыванию суммы цифр числа
Используйте функцию, которая определяет сумму цифр числа.


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

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

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