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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexcherep
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 24
#1

Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой - C++

25.09.2012, 14:12. Просмотров 787. Ответов 3
Метки нет (Все метки)

Напишите пожалуйста программу Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между ними Размерность
массива 100 Диапазон значений -100 - 100.
Для всех вариантов задания следует иметь в виду следующее:
0 считается положительным числом, если в задании не оговорен какой-то другой его статус;
когда речь идет о какой-то последовательности чисел, имеется в виду последовательность с длиной, большей 1;
в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 14:12     Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой
Посмотрите здесь:

Разместить все элементы с положительными значениями в левой части массива, с отрицательными — в правой - C++
помогите, пожалуйста, написать программу на С++: Нужно разместить все элементы с положительными значениями в левой части массива,...

Разместить все элементы с нулевыми значениями в левой части массива - C++
Помогите пожалуйста кому не трудно написать программу. Сам делаю, но результат выводится не тот, обидно последнее задание осталось, а...

В массиве уменьшить все элементы между двумя отрицательными значениями - C++
Задание такое: Дан массив из N вещественных чисел. Все элементы, расположенные между первым и вторым отрицательными элементами, уменьшить...

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов - C++
Размерность массива (100) Диапазон значений (-100 - +100) Заменить все элементы с отрицательными значениями средним арифметическим...

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. - C++
Заданный массив из 10 элементов. Массив Вы можем вводить одним из 2 способов: • с клавиатуры с помощью cin); • генерируя случайным...

Преобразовать массив со значениями (0,1) так, чтобы все элементы имели значение 1 - C++
задание такое дан массив: -рандомно заполнить его(0 и 1). -выбираем любой элемент у которого значение 1,находим его (один)два...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 14:40     Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой #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
26
27
28
29
30
31
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <iterator>
#include <functional>
 
using namespace std;
 
int main()
{
    vector <int> v (100);
    vector <int> :: iterator vi1;
 
 
    for(vi1=v.begin(); vi1 != v.end(); vi1++)
    {
    //   v.push_back(rand()%201-100);
      *vi1 = rand()%201-100;
 
    }
 
    ostream_iterator <int > s(cout," ");
    copy(v.begin(),v.end(),s);
    sort(v.begin(),v.end(),greater <int> ());
    cout << endl << endl;
    copy(v.begin(),v.end(),s);
 
 
    return 0;
}
Только у меня вопрос почему, когда
я использую v.push_back(rand()%201-100); у меня программа виснет?
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.09.2012, 14:42     Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <array>
#include <algorithm>
#include <functional>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(0));
    array<int, 100> arr;
    generate(arr.begin(), arr.end(), [] {return -100 + rand()%201;});
    for (int x:arr) cout<<x<<" ";
    cout<<"\n\n\n";
    sort(arr.begin(), arr.end(), greater<int>());
    for (int x:arr) cout<<x<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
soon
25.09.2012, 14:44     Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой
  #4

Не по теме:

Цитата Сообщение от kotleta Посмотреть сообщение
Только у меня вопрос почему, когда
я использую v.push_back(rand()%201-100); у меня программа виснет?
Размер вектора постоянно увеличивается. Посмотрите в сторону std::generate

Yandex
Объявления
25.09.2012, 14:44     Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой
Ответ Создать тему
Опции темы

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