С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Liza483
0 / 0 / 0
Регистрация: 01.06.2018
Сообщений: 5
1

Найти ту непрерывную последовательность положительных чисел, сумма элементов в которой максимальная

04.06.2018, 18:26. Просмотров 862. Ответов 1
Метки нет (Все метки)

Найти ту непрерывную последовательность положительных чисел, сумма элементов в которой максимальная
Размер массива 100
Диапазон значений -100-100
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2018, 18:26
Ответы с готовыми решениями:

Найти ту непрерывную последовательность чисел, сумма элементов в которой максимальна.
Помогите с лабой, нужен код. Буду благодарен Найти ту непрерывную...

Найти координаты начала той области, сумма значений элементов которой максимальная
Задано количество строк и столбцов матрицы, действительные значения её...

Найти среднее арифметическое положительных элементов строки, у которой сумма положительных элементов нечетна
вот какое-то начало, я чет матрицу не могу задать и формулу для вычисления не...

Найти непрерывную цепочку положительных элементов в масиве
Помогите написать код. Дан массив X из N целых чисел. Нужно найти самую...

Найти непрерывную часть массива, чтобы сумма элементов была максимальной
массив из случайных целых чисел от -1000 до 1000. задача найти непрерывную...

1
easybudda
Модератор
Эксперт CЭксперт С++
10157 / 6062 / 1525
Регистрация: 25.07.2009
Сообщений: 11,490
05.06.2018, 00:54 2
Лучший ответ Сообщение было отмечено Liza483 как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define SIZE (100)
#define MIN_VALUE (-100)
#define MAX_VALUE (100)
 
#define bounded_random() ( rand() % ( MAX_VALUE - MIN_VALUE + 1 ) + MIN_VALUE )
 
int main(void) {
    int array[SIZE], i, max_sequence_head, max_sequence_length, max_sequence_sum, current_sequence_head, current_sequence_length, current_sequence_sum;
    
    srand(time(NULL));
    
    for ( i = 0; i < SIZE; ++i )
        array[i] = bounded_random();
    
    printf("All array elements:\n");
    for ( i = 0; i < SIZE; ++i )
        printf("%d ", array[i]);
    
    max_sequence_head = current_sequence_head = -1;
    max_sequence_sum = current_sequence_sum = 0;
    max_sequence_length = current_sequence_length = 0;
    
    for ( i = 0; i <= SIZE; ++i ) {
        if ( i == SIZE || array[i] <= 0 ) {
            if ( current_sequence_head >= 0 ) {
                if ( current_sequence_sum > max_sequence_sum ) {
                    max_sequence_head = current_sequence_head;
                    max_sequence_length = current_sequence_length;
                    max_sequence_sum = current_sequence_sum;
                }
                current_sequence_head = -1;
                current_sequence_length = 0;
                current_sequence_sum = 0;
            }
        }
        else {
            if ( current_sequence_head < 0 )
                current_sequence_head = i;
            current_sequence_length += 1;
            current_sequence_sum += array[i];
        }
    }
    
    printf("\nFirst positive sequence with maximum sum:\n");
    for ( i = max_sequence_head; i < max_sequence_head + max_sequence_length; ++i )
        printf("%d ", array[i]);
    printf("\nSum: %d\n", max_sequence_sum);
    
    return 0;
}
Код
[andrew@easybook numbers]$ gcc -Wall max_sum_sequence.c 
[andrew@easybook numbers]$ ./a.out 
All array elements:
67 -99 7 -88 93 -59 31 24 -45 1 42 64 -16 94 -74 18 85 -12 70 20 70 28 54 -19 -35 19 94 -24 -78 45 -47 89 46 10 51 -12 1 -68 -89 56 -17 53 -31 68 -4 -5 -65 -70 34 -96 51 3 -18 -46 35 47 23 -22 -78 45 -77 -75 -17 19 -15 -66 -93 86 -34 69 41 49 -28 -91 -34 68 -46 1 99 38 -45 -1 -59 -13 3 26 84 -75 -97 56 20 77 81 -98 -4 -85 87 -47 -100 -48 
First positive sequence with maximum sum:
70 20 70 28 54 
Sum: 242
[andrew@easybook numbers]$
Проверку случая, когда в массиве вообще нет положительных чисел, можете сделать самостоятельно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2018, 00:54

Найти отрезок из 10 элементов, сумма которых максимальная
Размер масива 200 Диапазон значений 0-100

Найти в файле строку, сумма чисел которой минимальна
Задача: Создать текстовый файл, состоящий из случайного количества (не более...

Найти номер строки, сумма элементов которой минимальна
Найти номер строки сумма элементов которая минимальна.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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