Выполнить сортировку элементов последовательности по возрастанию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число N и одномерный массив A1, A2, ..., AN символьных элементов. Выполнить сортировку элементов последовательности по возрастанию. Если нужно выполнить сортировку, то символы массива - числа, я правильно понимаю?

Решение задачи: «Выполнить сортировку элементов последовательности по возрастанию»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    unsigned char *ptr = NULL;
    unsigned char *t;
    unsigned char *ptr_end;
    int n;
    printf("Введите количество элементов: ");
    scanf("%d", &n);
    unsigned char c = n + '0';//преобразовую инт в чар
 
    ptr = (unsigned char *) malloc(n*sizeof(unsigned char));
    if(!ptr){
        printf("Память не выделена!");
        exit(1);
    }
    ptr_end = ptr + с;
    printf("Введите элементы массива: ");
    for(t = ptr; t<ptr_end; t++){
        scanf("%s", t);
    }
 
    for(t = ptr; t<ptr_end; t++){
        printf("%s", t);
    }

Объяснение кода листинга программы

Код, представленный в вопросе, выполняет следующие действия:

  1. Устанавливает кодировку консоли в Windows на кодировку OEM (1251).
  2. Инициализирует переменные:
    • ptr указывает на начало выделенной памяти, равной n символам.
    • t является временной переменной, используемой в цикле.
    • ptr_end указывает на конец выделенной памяти, т.е. n + 1 символов.
  3. Запрашивает у пользователя ввод количества элементов, которые будут добавлены в массив.
  4. Преобразует введенное количество элементов в ASCII-символ, чтобы оно могло быть использовано в качестве индекса для массива.
  5. Выделяет память для массива n символов.
  6. Если память не может быть выделена, выводит сообщение об ошибке и завершает программу.
  7. Запрашивает у пользователя ввод элементов массива.
  8. Выводит элементы массива. Стоит отметить, что данный код не выполняет сортировку элементов по возрастанию. Возможно, для решения этой задачи потребуется дополнительный код, который будет сортировать элементы массива.

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы