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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод строки при записи в файл http://www.cyberforum.ru/cpp-beginners/thread384480.html
Почему при выводе на экран оператор endl; переводит строку на новую, а при записи в файл не переводит, а печатает всё в строчку ? const int rowD = 9, columnD = 4;//Размер преобразованного массива char arrayD; //Дробный двумерный массив ofstream xxx("zzz.txt");
C++ Непонятное поведение sscanf(.., "%lf", ..) Здравствуйте все! Столкнулся с такой проблемой: читаю строку из трех вещественных чисел - 18.4, 5.05, 1.015; смотрю значение value - а там вместо 18.4 - 18.399999999.... Подскажите пожалуйста, почему это происходит, можно ли с этим бороться, и, если можно, то каким образом? double value; sscanf(str, "TEXT %lf, %lf, %lf", &value, &value, &value); http://www.cyberforum.ru/cpp-beginners/thread384472.html
Упорядочить строки матрицы так, чтобы их первые элементы образовывали возрастающую последовательность C++
Здравствуйте уважаемые програмисты помогите пожалуйста с задачами 1)Дана матрица размера M × N. Упорядочить ее строки так, чтобы их первые элементы образовывали возрастающую последовательность. 2)Дана квадратная матрица A порядка M. Найти максимальный элемент для каждой ее диагонали, параллельной побочной (начиная с одноэле-ментной диагонали A1,1). заранее спасибо!
C++ Работа с бинарными файлами
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира представляет собой соответствующую пару чисел. Найти багаж, средний вес вещи в котором меньше общего среднего веса вещи по данным всего файла. Полученные сведения записать в файл g. На С++
C++ Тонкости быстрой сортировки http://www.cyberforum.ru/cpp-beginners/thread384462.html
Излазил кучу мест в сети. Нашел массу этих алгоритмов, но на поверку практически каждый не совсем работающий. Представляется, что в этой сортировке есть какая-то тонкость, но какая вот? Вот часть моего кода, осуществляющая патишинирование. Не могу понять правильно она рабботает или нет. По отдельности вроде правильно (ну в смысле, когда оформляется в виде отдельной функции: вот так: ...
C++ разница между произведениями найти разницу между произведениями чисел натурального ряда от 1 до 10,что стоят на парных и непарных местах. -входные данные вводятся из клавиатуры -результат вывести на экран подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
15.11.2011, 23:58     найти сумму чисел, расположенных перед первым минимальным.
Цитата Сообщение от Вася1q Посмотреть сообщение
как бы обойтись без массива?
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>
 
typedef struct NODE {
    int value;
    struct NODE * next;
} node_t;
 
typedef struct LIST {
    node_t * first;
    node_t * last;
} list_t;
 
int add_node(list_t * list, const int value){
    node_t * node;
    
    if ( ! ( node = malloc(sizeof(node_t)) ) )
        return -1;
    node->value = value;
    node->next = NULL;
    
    if ( ! ( list->first ) )
        list->first = node;
    else
        list->last->next = node;
    list->last = node;
    
    return 0;
}
 
node_t * min_element(const list_t * list){
    const node_t * cur_node = list->first;
    const node_t * min_node = cur_node;
    
    while ( cur_node->next ){
        cur_node = cur_node->next;
        if ( cur_node->value < min_node->value )
            min_node = cur_node;
    }
    
    return (node_t*)min_node;
}
 
int sum_before_min_element(const list_t * list){
    int sum = 0;
    const node_t * cur_node = list->first;
    const node_t * min_node = min_element(list);
    
    while ( cur_node != NULL && cur_node != min_node ){
        sum += cur_node->value;
        cur_node = cur_node->next;
    }
    
    return sum;
}
 
void remove_nodes(list_t * list){
    while ( list->first ){
        list->last = list->first->next;
        free(list->first);
        list->first = list->last;
    }
}
 
int main(void){
    list_t list = { NULL, NULL };
    int value;
    
    while ( printf("> ") > 0 && scanf("%d", &value) == 1 ){
        if ( add_node(&list, value) ){
            fprintf(stderr, "Memory error!\n");
            exit(1);
        }
    }
    
    printf("Sum before min element: %d\n", sum_before_min_element(&list));
    
    remove_nodes(&list);
    
    exit(0);
}
 
Текущее время: 16:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru