В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Лера15012003
Лера15012003
18.05.2021 10:05 •  Информатика

по информатике, программирование. Нужно написать на Паскале Фото внизу:

Показать ответ
Ответ:
nakjuo
nakjuo
12.11.2020 14:59

#include <iostream>

using namespace std;

unsigned DigitSum( unsigned x ) {

   unsigned sum = 0;

   while ( x != 0 ) {

       sum += x % 10;

       x /= 10;

   }

   return sum;

}

bool Comparison( const unsigned a, const unsigned b ) {

   return DigitSum( a ) < DigitSum( b );

}

// третий параметр указатель на функцию сравнения для сортировки

void InsertionSort( unsigned long *arr, size_t size, bool (*compareFunc)( const unsigned, const unsigned ) ) {

   for ( size_t i = 1; i < size; ++i )

       for ( size_t j = i; j > 0 && Comparison( arr[ j - 1 ], arr[ j ] ); --j )

           swap( arr[ j - 1 ], arr[ j ] );

}

int main() {

   const size_t maxCount = 10000;

   unsigned long* arr = new unsigned long[ maxCount ];

   size_t count = 0;

   cin >> count;

   for ( size_t i = 0; i < count; ++i ) {

       cin >> arr[ i ];

   }

   // сортируем массив, указывая какая функция для сравнения элементов используется

   InsertionSort( arr, count, Comparison );

   for ( size_t i = 0; i < count; ++i )

       cout << arr[ i ] << " ";

   delete[] arr;

   return 0;

}

дайте 5 звёзд позязя

0,0(0 оценок)
Ответ:
innadom34
innadom34
30.09.2020 01:39

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int sumDigit(int c)

{

   int sum = 0;

   while(c)

   {

       sum += c % 10;

       c /= 10;

   }

   return sum;

}

int main()

{

   vector <int> vec;

   int n;

   cin >> n;

   

   

   for(int i = 0; i < n; ++i)

   {

       int tmp;

       cin >> tmp;

       vec.push_back(tmp);

   }

   

   for(int i = 0; i < n - 1; ++i)

   {

       for(int j = i + 1; j < n; ++j)

       {

           if(sumDigit(vec[i]) < sumDigit(vec[j]))

           {

               swap(vec[i], vec[j]);

           }

       }

   }

   

   for(auto & ch : vec)

       cout << ch << ' ';

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота