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

заменить отрицательные елементы массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дата и день недели http://www.cyberforum.ru/cpp-beginners/thread355523.html
В общем задача такая: надо реализовать функцию, которая на вход будет получать дату в формате (год, месяц ,день), и будет возвращать день недели,соответствующий данной дате, а также указание на то,я вляется ли данный год високосным.Подскажите, с помощью каких функций данная задача может быть решена
C++ Двумерные массивы. Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую матрицу, переставляя ее блоки размера N х N крест накрест. http://www.cyberforum.ru/cpp-beginners/thread355522.html
C++ Задача Газон
Срочна нужна помощь в реализации в С++ Задачу нужно реализовать в с++ Газон Имя входного файла: lawn.in Имя выходного файла: lawn.out
Задача Клавиатура C++
Нужна реализация в С++ , заранее спс Задача Клавиатура Имя входного файла: keyboard.in Имя выходного файла: keyboard.out Максимальное время работы на одном тесте: 2 секунды Максимальный объем используемой памяти: 64 мегабайта Всем известно, что со временем клавиатура изнашивается, и клавиши на ней начинают залипать. Конечно, некоторое время такую клавиатуру еще можно использовать, но...
C++ последовательность дробных. чисел http://www.cyberforum.ru/cpp-beginners/thread355511.html
написать программу которая вычисляет среднее арифметические последовательности дробных вводимых с клавиатуры чисел. после ввода последнего числа программа должна вывести максимальное и минимальное число. последовательность должна выводиться во время работы программы
C++ Ищу ответы на задания из книги Лафоре Р. "Объектно-ориентированное программирование в С++" 4 издание. Дошел до 10 главы, из каждой главы делал все 12 заданий, хочу проверить правильно ли я их делал. И еще нужны ответы на вопросы которые идут перед заданиями. У кого то есть они? Или кто то знает где они могут быть? подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.09.2011, 14:34     заменить отрицательные елементы массива

Не по теме:

Выпендрёж от скуки...


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 <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <cstdlib>
#include <ctime>
 
double positive_average(const std::vector<double> & vec){
    double sum = 0.0;
    size_t count = 0;
    
    for ( std::vector<double>::const_iterator i = vec.begin(); i != vec.end(); ++i )
        if ( *i > 0.0 && ++count )
            sum += *i;
    
    return ( count ) ? sum / static_cast<double>(count) : 0.0;
}
 
template <typename T>
class RandNumber {
    int lo;
    int hi;
public:
    RandNumber(int Lo, int Hi): lo(Lo), hi(Hi) {}
    T operator () (){
        return static_cast<T>( rand() % (hi - lo + 1) + lo );
    }
};
 
int main(){
    const int SIZE(10);
    const int LO(-200);
    const int HI(200);
    
    std::vector<double> vec(SIZE);
    srand(time(NULL));
    std::generate(vec.begin(), vec.end(), RandNumber<double>(LO, HI));
    
    std::cout << "ARRAY:   ";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<double>(std::cout, " "));
    std::cout << std::endl;
    
    double avg = positive_average(vec);
    if ( avg > 0.0 ){
        std::cout << "Average of positive elements: " << avg << std::endl;
        std::replace_if(vec.begin(), vec.end(), std::bind2nd(std::less<double>(), 0.0), avg);
        std::cout <<"CHANGED: ";
        std::copy(vec.begin(), vec.end(), std::ostream_iterator<double>(std::cout, " "));
        std::cout << std::endl;
    }
    
    return 0;
}
Код
andrew@debnout:~/cpp/numbers$ g++ -o neg2average neg2average.cpp
andrew@debnout:~/cpp/numbers$ ./neg2average 
ARRAY:   165 48 -4 59 -4 -38 12 -148 113 -147 
Average of positive elements: 79.4
CHANGED: 165 48 79.4 59 79.4 79.4 12 79.4 113 79.4 
andrew@debnout:~/cpp/numbers$ ./neg2average 
ARRAY:   -88 -11 -95 -51 63 -101 199 103 -168 -120 
Average of positive elements: 121.667
CHANGED: 121.667 121.667 121.667 121.667 63 121.667 199 103 121.667 121.667 
andrew@debnout:~/cpp/numbers$ ./neg2average 
ARRAY:   25 -56 176 -182 -143 155 99 68 88 -45 
Average of positive elements: 101.833
CHANGED: 25 101.833 176 101.833 101.833 155 99 68 88 101.833 
andrew@debnout:~/cpp/numbers$

Не по теме:

диапазон [-200, 200] опять же по невнимательности, исправьте, если принципиально...

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