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

Динамические масивы - C++

Восстановить пароль Регистрация
 
Настя_111
 Аватар для Настя_111
4 / 4 / 0
Регистрация: 12.05.2010
Сообщений: 159
21.05.2010, 10:42     Динамические масивы #1
Помогите написать прошку

Составить программу, заполняющую список последовательностью случайных различных целых чисел и суммирующую те его элементы, которые расположены между минимальным и максимальным элементом (если минимальный элемент предшествует максимальному).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2010, 10:42     Динамические масивы
Посмотрите здесь:

C++ Динамические масивы
C++ C++ масивы
Динамические масивы C++
Таблица Пифагора через динамические масивы C++
Масивы C++
Динамические масивы - параметры функций C++
Динамические одномерные масивы C++
Динамические (или не динамические.) переменные! C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.05.2010, 12:18     Динамические масивы #2
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
 
/*
*   Составить программу, заполняющую список последовательностью случайных различных целых чисел
*   и суммирующую те его элементы, которые расположены между минимальным и максимальным элементом
*   (если минимальный элемент предшествует максимальному).
*/
 
 
/* указатель на первый максимальный элемент в массиве [begin, end) */
int * max_element(int * begin, int * end){
    assert ( begin < end );
    return ( end - begin == 1 ) ? begin : ( *begin < *(end - 1) ) ? max_element(++begin, end) : max_element(begin, --end);
}
 
/* указатель на первый минимальный элемент в массиве [begin, end) */
int * min_element(int * begin, int * end){
    assert ( begin < end );
    return ( end - begin == 1 ) ? begin : ( *begin > *(end - 1) ) ? min_element(++begin, end) : min_element(begin, --end);
}
 
/* заполняет массив случайными числами в диапазоне [0, 100) */
void random_fill(int * begin, int * end){
    while ( begin < end )
        *(begin++) = rand() % 100;
}
 
/* печатает последовательность в поток */
void print(int * begin, int * end, FILE * out){
    while ( begin < end )
        fprintf(out, "%02d ", *(begin++));
    fprintf(out, "\n");
}
 
/* сумма элементов массива [begin, end) */
long sum(int * begin, int * end){
    long s = 0;
    while ( begin < end )
        s += *(begin++);
    return s;
}
 
 
int main(void){
    int *pArr, *pMin, *pMax, size;
 
    srand(time(NULL));
 
    printf("Number of elements: ");
    if ( scanf("%d", &size) != 1 || size < 1 ){
        fprintf(stderr, "Wrong number!\n");
        exit(EXIT_FAILURE);
    }
 
    if ( ! ( pArr = (int*)calloc(size, sizeof(int)) ) ){
        perror("calloc");
        exit(EXIT_FAILURE);
    }
 
    random_fill(pArr, pArr + size);
    printf("Random array:\n");
    print(pArr, pArr + size, stdout);
 
    printf("Min element: %02d\n", *(pMin = min_element(pArr, pArr + size)));
    printf("Max element: %02d\n", *(pMax = max_element(pArr, pArr + size)));
 
    if ( pMax < pMin )
        printf("Max element before Min\n");
    else if ( pMax == pMin )
        printf("Min and Max elements are equal\n");
    else if ( pMax - pMin == 1 )
        printf("Max element right after Min\n");
    else
        printf("Sum of elements between Min and Max is %02ld\n", sum(pMin + 1, pMax));
 
    free(pArr);
    exit(EXIT_SUCCESS);
}
что-то мне это напоминает...
Yandex
Объявления
21.05.2010, 12:18     Динамические масивы
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru