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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание программы Системный будильник http://www.cyberforum.ru/cpp-beginners/thread203915.html
Задали задание сделать что-то вроде органайзера. Чтобы сообщал о предстоящих встречах,важных звонках или т.п. не знаю как реализовать Буду рад любой помощи..
C++ Запись динамической структуры в файл. Доброго времени суток! У меня такой вопрос: Есть динамическая структура типа: массив каждый элемент которого может хранить данные и указатель на список (двусвязный) <-><-><-><-> . . . <-> http://www.cyberforum.ru/cpp-beginners/thread203913.html
C++ Массив
Всем привет! Само задание можно глянуть во вложение.. Первую часть я вроде сделал, а вот со 2 и 3 заданием проблема.. может кто сможет помочь. Сам код: #include <iostream> #include <stdio.h> #include <conio.h> #include <time.h> using namespace std;
Сжатие массива C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: максимальный элемент массива; сумму элементов массива, расположенных до последнего положительного элемента; сжать массив, удалив из него все элементы, модуль которых находится в интервале Освободившиеся в конце массива элементы заполнить нулями. То что массив не вещественный - знаю.первые два задания сделал,все...
C++ Найти рациональные корни полинома! http://www.cyberforum.ru/cpp-beginners/thread203902.html
Ребят помогите плс написать код.Ломаю голову уже оч давно((((не выходит. Условие такое: Найти все рациональные корни полинома n-й степени с целыми коэффициентами (x) = 4 x4 + 6 x3 - 12 x2 - 7 x + 9 . При решении таких задач используется теорема. Теорема. Для того чтобы несократимая дробь p/q была корнем уравнения an xn + an-1 xn-1 + ... + a0 = 0 с целыми коэффициентами, необходимо,...
C++ Нарисовать ромбик Надо нарисовать ромбик типа - * * * * * * * ... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.12.2010, 19:53     Упорядочить элементы вещественного массива
Цитата Сообщение от кристичка Посмотреть сообщение
блин я уже вся красная
это впечатляет!
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);
}
 
Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru