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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ блок-схема http://www.cyberforum.ru/cpp-beginners/thread142900.html
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> struct inf{ char surname; char name; char date; char misto;
C++ Какой интерфейс сделать для стека Здравствуйте уважаемые форумчане. Для стека нужно сделать графический интерфейс, как лучше реализовать не знаю. Подскажите как лучше это сделать. Глупо наверное, но есть мысль на CLR форму запихнуть... http://www.cyberforum.ru/cpp-beginners/thread142895.html
C++ Возникает ошибка при использовании fscanf
Здраствуйте. Возникла такая проблема что при попытке что-то сделать с временной строкой 'с' выдается виндовская ошибка что пямать не может быть read. даже вывести ее после сканфа не получается....
warning C4005: '_WIN32_WINDOWS' : macro redefinition C++
есть программа ,при компилирование выдает ошибку такого рода -------------------Configuration: DIPLOM_6 - Win32 Debug-------------------- Compiling... DIPLOM_6.cpp c:\program files\microsoft...
C++ Дано натуральное число n http://www.cyberforum.ru/cpp-beginners/thread142882.html
дано натуральное число n, действытельные числа А, ... ,Аn. Получить min(А1,А3 ...);
C++ Where to download C++ Where to download C++. Write plese! :scratch: Throw link! подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9915 / 5838 / 975
Регистрация: 25.07.2009
Сообщений: 11,010
09.06.2010, 03:17
люSька, вот Вам примерно то же самое на С - должно бы скомпилироваться. Длинно, сложно и запутанно, за то с красивостями
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef struct NODE {
    int val;
    struct NODE * next;
} node_t;
 
node_t * new_node(int val, node_t * last){
    node_t * node;
    
    if ( ( node = (node_t*)malloc(sizeof(node_t)) ) == NULL )
        return NULL;
    node->val = val;
    node->next = NULL;
 
    if ( last )
        last->next = node;
 
    return node;
}
 
void print_nodes_sum(const node_t * node){
    int sum = 0;
    while ( node ){
        printf("%d%s", node->val, ( node->next ) ? " + " : " = ");
        sum += node->val;
        node = node->next;
    }
    printf("%d\n", sum);
}
 
void delete_nodes(node_t * node){
    node_t * tmp;
    while ( node ){
        tmp = node->next;
        free(node);
        node = tmp;
    }
}
 
int rand_num(){
    return rand() % 201 - 100;
}
 
void print_array(const int * arr, int size){
    int i;
    
    printf("Print all array? (y/n): ");
    if ( ( i = getchar() ) != 'y' && i != 'Y' )
        return;
    
    for ( i = 0; i < size; ++i )
        printf("%4d%s", arr[i], ( ( i + 1 ) % 16 ) ? " " : "\n");
    printf("\n");
}
 
#define ARR_SIZE 200
 
int main(void){
    int arr[ARR_SIZE], i, cur_sum, max_sum;
    node_t * cur_first, * cur_last, * max_first;
    
    cur_first = cur_last = max_first = NULL;
    cur_sum = max_sum = 0;
    srand(time(NULL));
    for ( i = 0; i < ARR_SIZE; ++i )
        arr[i] = rand_num();
    
    for ( i = 0; i < ARR_SIZE; ++i ){
        if ( arr[i] < 0 ){
            if ( cur_sum ){
                if ( cur_sum > max_sum ){
                    if ( max_first )
                        delete_nodes(max_first);
                    max_first = cur_first;
                    max_sum = cur_sum;
                }
                else
                    delete_nodes(cur_first);
                cur_first = cur_last = NULL;
                cur_sum = 0;
            }
        }
        else {
            if ( ( cur_last = new_node(arr[i], cur_last) ) == NULL ){
                fprintf(stderr, "Can't create a new node!\n");
                exit(EXIT_FAILURE);
            }
            if ( ! cur_first )
                cur_first = cur_last;
            cur_sum += arr[i];
        }
    }
    if ( cur_sum > max_sum ){
        if ( max_first )
            delete_nodes(max_first);
        max_first = cur_first;
    }
    
    if ( ! max_first ){
        if ( cur_first ){
            printf("No negative elements in array!\n");
            printf("Sum of all elements: %d\n", cur_sum);
            delete_nodes(cur_first);
        }
        else
            printf("Can't find any positive sentence!\n");
    
        print_array(arr, ARR_SIZE);
        exit(EXIT_SUCCESS);
    }
    
    printf("Max sum of positive elements continuous sequence is:\n");
    print_nodes_sum(max_first);
    
    print_array(arr, ARR_SIZE);
    
    if ( cur_first != NULL && cur_first != max_first )
        delete_nodes(cur_first);
    delete_nodes(max_first);
    
    exit(EXIT_SUCCESS);
}
Найти такую непрерывную последовательность положительных чисел, сумма элементов в которой максимальна
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru