Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вычислить сумму элементов вещественного массива, находящихся до минимального - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ статические массивы http://www.cyberforum.ru/cpp-beginners/thread203820.html
Помогите пожалуйста решить задачку! Желательно на завтра)))))Дана ценлочисленная прямоугольная матрица. Определитть номер первого из столбцов, содержащих хотя бы один нулевой элемент....
C++ статические массивы Дана ценлочисленная прямоугольная матрица. Определитть номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовём сумму её отрицательных... http://www.cyberforum.ru/cpp-beginners/thread203817.html
C++ Turbo C++ Ребята Здравствуйте!
Помогите такому неучу как я, признаюсь стыдно! Задача на двумерный массив! Буду ВАМ очень благодарна!:-) Заменить минимальные элементы в массиве целых чисел на среднее арифметическое его...
Прблема с заполнением массива C++
Здраствуйте Имеется массив struct CELL { double z; int color; }; CELL *buff; Но записть данные в него не получается (занные кудато записываются но в массиве не изменяются)
C++ Структура: сведения об ассортименте игрушек в магазине http://www.cyberforum.ru/cpp-beginners/thread203805.html
Создать программу, содержащую сведения об ассортименте игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы (например: 2-5, т.е. от 2 до 5 лет). Количество...
C++ Перенести ведущие нули в младшие разряды Здравствуйте! Прошу помощи в решении простенького задания : Перенести ведущие нули в младшие разряды. Как я поняла задание должно быть такого типа : Ввожу 00000546 , программа выводит 54600000 .... подробнее

Показать сообщение отдельно
кристичка
4 / 3 / 1
Регистрация: 05.12.2010
Сообщений: 38
05.12.2010, 22:58
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);
}
Добавлено через 20 секунд
Запрашивается количество элементов в массиве. Создаётся массив, заполняется случайными числами и за одно выводится на экран. С помощью функций вычисляются указатели на элементы с наименьшим и наибольшим значениями, после чего идут проверки, что минимальный элемент не первый в массиве, минимальный элемент находится перед максимальным, максимальный элемент не последний в массиве, и, если все проверки прошли, массив должным образом сортируется и выводится на экран...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru