Составить максимально возможное число - C (СИ)
Формулировка задачи:
Дан список чисел, при этом некоторые могут начинаться с нескольких 0, например, 000370. Нужно составить из этих чисел одно число просто "присоединяя" друг к другу, чтобы это число было максимально возможным. Также известно, что хотя бы одно число не начинается с 0. Не знаю, как подступиться к задаче, жду помощи) Только возникла идея, добавить к каждому числу единицу слева, например, 1000370, отсортировать в порядке убывания, и затем убрать эту единицу.
Решение задачи: «Составить максимально возможное число»
textual
Листинг программы
#include <stdio.h></stdio.h> #include <stdlib.h></stdlib.h> #include <string.h></string.h> #define STRING_COUNT 6 int cmp(void *ptr1, void* ptr2) { char **str1 = ptr1; char **str2 = ptr2; return (strcmp(*str1,*str2)<0)? 1: -1; } int main(void) { char* mass[STRING_COUNT] = {"00045","0199","19","22","031","89"}; char **tmp = malloc(sizeof(char*)*STRING_COUNT); memcpy(tmp,mass,sizeof(char*)*STRING_COUNT); qsort(tmp,STRING_COUNT,sizeof(char*),cmp); for(int i=0;i<string_count;++i) {="" ="" printf("%s="" ",mass[i]);="" }="" printf("\n\n");="" char="" number[50]="" ;="" for(int="" i="0;i<STRING_COUNT;++i)" strcat(number,tmp[i]);="" printf("your="" num:="" %s",number);="" return="" 0;="" }<="" pre=""></string_count;++i)>
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы со строками и сортировкой.
- Определяется количество строк в массиве.
- Создается функция сравнения для использования в функции сортировки qsort.
- В основной функции создается массив указателей на строки.
- Создается временный массив указателей на строки, в который копируется исходный массив.
- Временный массив сортируется по убыванию с помощью функции qsort и функции сравнения.
- Выводится отсортированный массив на экран.
- Создается пустая строка для формирования итогового числа.
- В цикле, с помощью функции strcat, к итоговой строке добавляются отсортированные строки из массива.
- Итоговое число выводится на экран.
- Функция возвращает 0, заканчивая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д