Сравнение вещественных чисел

180
09 апреля 2018, 01:06

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

long double sortArr[10] = { 123.12,234.45,1463.34,12452.1,14656.35,21443.123,65409.67,78558.32,87686.21 };
long double  sortWithadditionalNumb(long double arr[], int *quantity) {
int i;
long double additionalNumber;
printf("\nВедите еще одно вещественное число ");
scanf_s("%Lf", &additionalNumber);
getchar();
for (i = *quantity; i>0; i--) {
    if (arr[i] > additionalNumber) {
        arr[i + 1] = arr[i];
    }
    if (arr[i] < additionalNumber) {
        arr[i - 1] = additionalNumber;
        break;
    }
}
/*
for (i = *quantity; i>0; i--) {
    if (*(arr + i) > additionalNumber) {
        *(arr + i + 1) = *(arr + i);
    }
    if (*(arr + i) < additionalNumber) {
        *(arr + i - 1) = additionalNumber;
        break;
    }
}
*/
(*quantity)++;
for (int x = 0; x<*quantity; x++) {
    printf("%.8Lg ", *(arr + x));
}
return additionalNumber;

}

Answer 1

В цикле:

if (arr[i] < additionalNumber) {
    arr[i - 1] = additionalNumber;
    break;
}

нужно вставлять в arr[i + 1], так как элементы у вас все время смещались вправо.

READ ALSO
Timeout срабатывает после остановки QTimer

Timeout срабатывает после остановки QTimer

В основном классе MainWidnow определён Qtimer* timerВнутри одного из методов класса timeout связывается с публичным слотом:

176
Поместить значения парсинга в mongodb

Поместить значения парсинга в mongodb

При помещении информации, которую извлекаю с сайтов столкнулся с проблемой

198
RMI. Ошибка при запуске сервера

RMI. Ошибка при запуске сервера

При запуске сервера через пакетный файл, в открывшейся консоли выскакивает вот такая ошибка, может быть кто нибудь знает как это пофиксить?...

217