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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ статические массивы http://www.cyberforum.ru/cpp-beginners/thread203820.html
Помогите пожалуйста решить задачку! Желательно на завтра)))))Дана ценлочисленная прямоугольная матрица. Определитть номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовём сумму её отрицательных чётных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с цбыванием характеристик.
C++ статические массивы Дана ценлочисленная прямоугольная матрица. Определитть номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовём сумму её отрицательных чётных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с цбыванием характеристик. Добавлено через 21 час 48 минут... 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 секунд
Запрашивается количество элементов в массиве. Создаётся массив, заполняется случайными числами и за одно выводится на экран. С помощью функций вычисляются указатели на элементы с наименьшим и наибольшим значениями, после чего идут проверки, что минимальный элемент не первый в массиве, минимальный элемент находится перед максимальным, максимальный элемент не последний в массиве, и, если все проверки прошли, массив должным образом сортируется и выводится на экран...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru