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

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

Войти
Регистрация
Восстановить пароль
 
Аннaa
1 / 1 / 0
Регистрация: 21.10.2013
Сообщений: 115
#1

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

10.01.2014, 19:54. Просмотров 607. Ответов 7
Метки нет (Все метки)

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <cmath>
 
 
using namespace std;
 
void float1(double *mass, int const n);
void float2(double *mass, int const n);
void element1(double *mass, int const n);
 
int main()
{
srand((unsigned)time(0));
int const n=10;
double mass[n];
float1(mass, n);
float2(mass, n);
cout << '\n';
element1(mass, n);
float2(mass, n);
return 0;
}
void float1 (double *mass, int const n)
{
for(int i = 0; i < n; i++)
mass[i] = round(10000.0*double(rand())/RAND_MAX)/1000.0-5.0;
}
void float2(double *mass, int const n)
{
for(int i = 0; i < n; i++)
cout << mass[i] << ' ';
cout << endl;
}
void element1(double *mass, int const n)
{
double x;
for(int i=0;i<n;i++)
if(mass[i]>0) {x=mass[i];}
for(int i=0;i<n;i++)
if(mass[i]<0) {x=mass[i];}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 19:54     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
Посмотрите здесь:

C++ Преобразовать массив таким образом, чтобы сначала располагаись все положительные элементы, а потом-все отлицательные
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные C++
C++ Преобразовать массив таким образом чтобы сначала располагались все элементы равные нулю а потом остальные
C++ Преобразовать массив, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%
C++ Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные
C++ Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы
C++ Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev_Hyper
Заблокирован
10.01.2014, 19:58     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #2
сортировка какая нужна?
2 5 -6 8 3 5 0 9 -8 -7 -6 -12 8 0 -6
в итоге?
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,041
10.01.2014, 20:00     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #3
Если упорядоченность не важна, то можно просто отсортировать по убыванию
Аннaa
1 / 1 / 0
Регистрация: 21.10.2013
Сообщений: 115
10.01.2014, 20:02  [ТС]     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #4
чтоб положительные были в начале, а потом отрицательные, можно и не по убыванию
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,041
10.01.2014, 20:03     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #5
отсортируйте массив по убыванию и посмотрите где будут положительные, где отрицательные...
Ev_Hyper
Заблокирован
10.01.2014, 20:06     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #6
Аннaa, попробуйте так:
C++
1
#include <algorithm>
C++
1
2
3
4
5
void element1(double *mass, int const n)
{
sort(mass,mass+n);
reverse(mass,mass+n);
}
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,041
10.01.2014, 20:07     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать? #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <iterator>
#include <functional>
 
int main()
{
    int a[] = {2, 5, -6, 8, 3, 5, 0, 9, -8, -7, -6, -12, 8, 0, -6};
    const int size = sizeof(a) / sizeof(*a);
    std::sort(a, a + size, std::greater<int>());
    std::copy(a, a + size, std::ostream_iterator<int>(std::cout, " "));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 20:25     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
Еще ссылки по теме:

Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1 C++
C++ Преобразовать массив: сначала расположить все элементы, целая часть которых не превышает 1, потом - остальные
C++ Преобразовать массив, чтобы сначала располагались все положительные элементы, а потом все отрицательные
C++ Преобразовать массив, чтобы сначала располагались элементы, модуль которых не превышает 5, а потом остальные
C++ Сортировать массив таким образом, чтобы сначала располагались все положительные элементы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
volvo
10.01.2014, 20:25     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
  #8
 Комментарий модератора 
Аннaa, перестань уже темы плодить! Вот этого топика: Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные что, было недостаточно? Нельзя было продолжать обсуждение там? Ты же уже десяток дублей наплодила после этого. Угомонись уже.
Yandex
Объявления
10.01.2014, 20:25     Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
Ответ Создать тему
Опции темы

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