Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

printРабочее место участника

printЗадачи

2604. Сортировка

Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Функция быстрой сортировки имеет прототип

void qsort( void *ptr, size_t count, size_t size,
            int (*comp)(const void *, const void *) );

Первый аргумент функции - адрес массива, далее количество элементов массиве и размер одного элемента. Последним аргументом является указатель на функцию, которой передаются адреса двух элементов массива для сравнения. Функция сравнения должна вернуть 0 в случае равенства элементов, отрицательное число, если первый элемент меньше второго, иначе положительное число.

Функция для сравнения строк имеет следующий прототип

int strcmp( const char *lhs, const char *rhs);

Эта функция сравнения возвращает 0 в случае равенства строк, отрицательное число, если первая строка меньше второй, иначе положительное число (т.е. соответствует требованиям qsort на функцию сравнения).

Напишите оператор вызова функции для сортировки массива строк:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{ char list[1000][100];
  int n;
  scanf("%d",&n);
  getchar();
  for(int i=0;i<n;++i) {
    list[i][0]=0;
    scanf("%99[^\n]",list[i]);
    getchar();
  }
  ... // вызов qsort
  for(int i=0;i<n;++i)
    printf("%s\n",list[i]);
}

В качестве решения необходимо отправить только оператор с вызовом функции qsort.

loading