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

Работа над векторами! - C++

Восстановить пароль Регистрация
 
Fariz
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 10
01.02.2012, 22:10     Работа над векторами! #1
Даны вещественные числа a1, a2, ... an. Поменять местами наибольший и наименьший элементы.

Помогите пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 22:19     Работа над векторами! #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
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iomanip>
 
int main()
{
    std::srand(std::time(nullptr));
    const int n = 10;
    std::vector<float> v(n);
    std::generate(v.begin(), v.end(), [] { return std::rand() % 201 * 0.1; });
    for(const auto& it: v)
        std::cout << std::setw(8) << it;
    std::cout << std::endl;
    std::iter_swap
    (
        std::min_element(v.begin(), v.end()),
        std::max_element(v.begin(), v.end())
    );
    for(const auto& it: v)
        std::cout << std::setw(8) << it;
    return 0;
}
http://liveworkspace.org/code/7b3353...2ae434902af57d
Fariz
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 10
01.02.2012, 22:32  [ТС]     Работа над векторами! #3
Здравствуйте!
Спасибо за решение, но в листинге
Выдаёт ошибку std::srand(std::time(nullptr));
Artishok
ЧакЭ одобряЭ
 Аватар для Artishok
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
01.02.2012, 22:51     Работа над векторами! #4
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
 
int main()
{
    std::srand(std::time(NULL));
    std::vector<double> x;
        int n;
    std::cout<<"Number of elements\n";
    std::cin>>n;
    std::cout<<"Insert elements\n";
    for(int i=0;i<n;i++)
    {
        //double a;
        //std::cin>>a;
        x.push_back(/*a*/rand()%60);
    }
    std::cout<<"Before\n";
    for(int i=0;i<x.size();i++)
    std::cout<<x[i]<<" ";
    std::iter_swap(std::max_element(x.begin(),x.end()),std::min_element(x.begin(),x.end()));
    std::cout<<"\nAfter\n";
    for(int i=0;i<x.size();i++)
    std::cout<<x[i]<<" ";
    return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.02.2012, 22:52     Работа над векторами! #5
Выдаёт ошибку std::srand(std::time(nullptr));
Значит компилятор не поддерживает новый стандарт.
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
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iomanip>
 
float gen() { return std::rand() % 201 * 0.1; }
 
int main()
{
    std::srand(std::time(0));
    const int n = 10;
    std::vector<float> v(n);
    std::generate(v.begin(), v.end(), gen);
        for(std::vector<float>::iterator it = v.begin(); it != v.end(); ++it)
            std::cout << std::setw(8) << *it;
    std::cout << std::endl;
    std::iter_swap
    (
        std::min_element(v.begin(), v.end()),
        std::max_element(v.begin(), v.end())
    );
    for(std::vector<float>::iterator it = v.begin(); it != v.end(); ++it)
        std::cout << std::setw(8) << *it;
    return 0;
}
Fariz
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 10
01.02.2012, 23:05  [ТС]     Работа над векторами! #6
Всё отлично!
Работает! Спасибо!
Yandex
Объявления
01.02.2012, 23:05     Работа над векторами!
Ответ Создать тему
Опции темы

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