Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить максимальную разность между двумя соседними цифрами числа http://www.cyberforum.ru/cpp-beginners/thread1029165.html
Написать программу для с++: Дано целое число N. Определить максимальную разность между двумя соседними цифрами.
C++ Вычислить корни квадратного уравнения. Написать программу для с++: Вычислить корни квадратного уравнения. http://www.cyberforum.ru/cpp-beginners/thread1029163.html
C++ cin, cout, endl не определены
Всем здрасте=) Есть исходник, он работает и всё с ним отлично, мне необходимо его обфусцировать(т.е. зашифровать путём изменения имен переменных, функций, процедур и классов), так вот с помощь такого обфускатора я этот исходник шифрую, но после этого он не работает, при чем ошибка очень странная, после компиляции говорит, что не определён cin, cout, endl, а почему это происходит я никак не...
Написать функцию для определения максимального и минимального из чисел C++
Написать программу в с++: Дан текстовый файл с неизвестным количеством вещественных чисел. Написать функцию для определения максимального и минимального из них.
C++ Написать функцию для сравнения первого слова второй строки и последнего слова пятой строки http://www.cyberforum.ru/cpp-beginners/thread1029153.html
Написать программу в с++: Дан текстовый файл, состоящий из 5 строк. Написать функцию для сравнения первого слова второй строки и последнего слова пятой строки
C++ Написать функцию для вычисления суммы диагональных элементов матрицы Написать программу в с++: Пусть пользователь вводит динамическую матрицу размером NxN. Написать функцию для вычисления суммы диагональных элементов. подробнее

Показать сообщение отдельно
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
05.12.2013, 02:57     Написать программу для сортировки массива по убыванию суммы цифр элементов
или так (С++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;
            }
        }
    }
}
 
Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru