Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
#1

Упорядочить элементы вещественного массива - C++

05.12.2010, 16:51. Просмотров 615. Ответов 10
Метки нет (Все метки)

упорядочить элементы вещественного массива следующим образом: по возрастанию элементы расположены до минимального, по убыванию после максимального. определить номер минимального и максимального массива .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2010, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить элементы вещественного массива (C++):

Упорядочить элементы вещественного массива по возрастанию - C++
Упорядочить элементы вещественного массива следующим образом: по возраста- нию элементы, расположенные в массиве до минимального, по...

Вывести на экран элементы вещественного массива - C++
Вывести на экран элементы вещественного массива Y и их порядковые номера, при соблюдении следующего условия 0< i <1.(Под i подразумевается...

Найти наибольший и наименьший элементы вещественного массива - C++
Найти наибольший и наименьший элементы вещественного массива. Если таких элементов несколько, определить сколько их. Создать функции для...

Элементы вещественного массива сдвинуть на k позиций влево - C++
Здравствуйте! Помогите, пожалуйста, с задачей: элементы вещественного массива сдвинуть на k позиций влево

Занести элементы вещественного массива X, удовлетворяющие условию, в массив Y - C++
Пожалуйста помогите кто может Записать элементы вещественного массива X, удовлетворяющие условию xi>=1 и xi<=2, подряд в массив Y....

Упорядочить элементы массива, располагая в первой его половине элементы, стоявшие на четных позициях - C++
Есть массив: int main() { setlocale(LC_ALL,"RUSSIAN"); int array; int i, n, k, min, sumabs = 0, minabs = 0; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
05.12.2010, 16:52 #2
а как определить номер массива? я отстал
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 16:58  [ТС] #3
честно я ненаю((( ну эта задача относится к теме указатели(
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
05.12.2010, 17:10 #4
склоняюсь к тому, что это невозможно. как слово все меняет! вот было бы там "элемента"...
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 17:14  [ТС] #5
ой и правда элемента хД) реши пожалуйста)
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
05.12.2010, 17:18 #6
окей, вопрос - что, если минимальный элемент стоит правее, чем максимальный? что будет между ними? я склонен предполагать, что черная дыра или что-то такое
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 17:20  [ТС] #7
ненаю))))) блин я уже вся красная :'(
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,598
05.12.2010, 19:53 #8
Цитата Сообщение от кристичка Посмотреть сообщение
блин я уже вся красная
это впечатляет!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
double * min_ptr(double * arr, size_t size){
    return ( size == 1 ) ? arr : ( *arr <= *(arr + size - 1) ) ? min_ptr(arr, size - 1) : min_ptr(arr + 1, size - 1);
}
 
double * max_ptr(double * arr, size_t size){
    return ( size == 1 ) ? arr : ( *arr >= *(arr + size - 1) ) ? max_ptr(arr, size - 1) : max_ptr(arr + 1, size - 1);
}
 
int cmp_asc(const void * a, const void * b){
    return ( *(double*)a < *(double*)b ) ? -1 : ( *(double*)a > *(double*)b ) ? 1 : 0;
}
 
int cmp_desc(const void * a, const void * b){
    return ( *(double*)a < *(double*)b ) ? 1 : ( *(double*)a > *(double*)b ) ? -1 : 0;
}
 
int main(void){
    double * parr, * pmax, * pmin;
    size_t size, i;
    
    printf("Number of elements: ");
    if ( scanf("%u", &size) != 1 ){
        fprintf(stderr, "Wrong input!\n");
        exit(1);
    }
    if ( ( parr = (double*)malloc(sizeof(double) * size) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    
    srand(time(NULL));
    printf("Unsorted array:\n");
    for ( i = 0; i < size; ++i )
        printf("%.1f ", ( parr[i] = (double)(rand() % 100) / 10.0 ));
    printf("\n");
    
    printf("Index of first min value element: %d\n", ( pmin = min_ptr(parr, size) ) - parr);
    printf("Index of first max value element: %d\n", ( pmax = max_ptr(parr, size) ) - parr);
    
    if ( pmin == parr )
        printf("No elements before first min value!\n");
    else if ( pmin > pmax )
        printf("Min value element after max value element!\n");
    else if ( pmax == parr + size - 1 )
        printf("No elements after max value element!\n");
    else {
        qsort(parr, pmin - parr - 1, sizeof(double), cmp_asc);
        qsort(pmax + 1, size - (pmax - parr) - 1, sizeof(double), cmp_desc);
        printf("Sorted array:\n");
        for ( i = 0; i < size; ++i )
            printf("%.1f ", parr[i]);
        printf("\n");
    }
    
    free(parr);
    exit(0);
}
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 22:14  [ТС] #9
чет я неочень пойму как она работает
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,598
05.12.2010, 22:49 #10
Цитата Сообщение от кристичка Посмотреть сообщение
чет я неочень пойму как она работает
А вот, как:
Упорядочить элементы вещественного массива
Запрашивается количество элементов в массиве. Создаётся массив, заполняется случайными числами и за одно выводится на экран. С помощью функций вычисляются указатели на элементы с наименьшим и наибольшим значениями, после чего идут проверки, что минимальный элемент не первый в массиве, минимальный элемент находится перед максимальным, максимальный элемент не последний в массиве, и, если все проверки прошли, массив должным образом сортируется и выводится на экран...
С какого места не понятно?
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 22:54  [ТС] #11
спасибо я все терь поняла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2010, 22:54
Привет! Вот еще темы с ответами:

Упорядочить элементы массива в порядке возрастания, все элементы больше нуля увеличить в 3 раза - C++
Помогите пожалуйста Нужна прога: Есть массив X(n). Упорядочить его элементы в порядке возрастания, все элементы больше нуля...

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию - C++
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за спаданням.

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька». - C++
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода &quot; пузырька&quot;!!! Дан массив А(40). Найти минимальный и...

Задан массив из 100 элементов вещественного типа. Отсортировать элементы массива по убыванию - C++
Задан массив из 100 элементов вещественного типа. Отсортировать элементы массива по убыванию.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.12.2010, 22:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru