Другие языки программирования и технологии

Помогите с программированием на си

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

#define N 25

int increase(const void *, const void *);
int decrease(const void *, const void *);
int search_index(double *, size_t, double);

int main() {
    double a[N], param = 20.;
    size_t n;
    int index;

    srand((unsigned)time(NULL));
    for (n = 0; n < N; n++)
        a[n] = (double)rand() / rand() + rand() % 30;

    setlocale(LC_CTYPE, "Russian_Russia.1251");

    printf("Исходный массив: \n\n");
    for (n = 0; n < N; n++)
        printf(".3Lf\n", a[n]);

    qsort(a, N, sizeof(double), increase);

    index = search_index(a, N, param);
    if (index >= 0)
        qsort(a + index, N - index, sizeof(double), decrease);

    printf("\n\nОтсортированный массив: \n\n");
    for (n = 0; n < N; n++)
        printf(".3Lf\n", a[n]);

    _getch();
    return 0;
}

int increase(const void * a, const void * b) {
    if (*(double *)a < *(double *)b) return -1;
    return *(double *)a > *(double *)b;
}

int decrease(const void * a, const void * b) {
    if (*(double *)a > *(double *)b) return -1;
    return *(double *)a < *(double *)b;
}

int search_index(double * p, size_t sz, double param) {
    size_t n;

    for (n = 0; n < sz; n++)
        if (p[n] > param) return n;
    return -1;
}
АБ
Алексей Бахмутов
69 653
Лучший ответ
То есть просто за ва написать, потому что вам лень?
Rowshen Rejepow
Rowshen Rejepow
34 701
Не представляю как сделать даже по частям.
Попробуйте задать еще 2 массива.
В первый запишите числа меньше 20. Во второй - больше.
Сортируйте каждый массив отдельно.
Запишите оба массива в первый.