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

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

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

Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец - C++

24.04.2014, 21:49. Просмотров 699. Ответов 2
Метки нет (Все метки)

Составить программу, которая превращает массивы А [10] и В [18] следующим образом: для каждого из них все отрицательные элементы одномерного массива переместить на начало массива, а все положительные - в конец массива с сохранением порядка следования. Инициализацию, вывод элементов массива, их обработку организовать в отдельных функциях.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 21:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец (C++):

Преобразование массивов А[10] и В[18] так, чтобы для каждого все отрицательные элементы переместить в начало - C++
Составить программу, которая преобразует массивы А и В следующим образом: для каждого из них все отрицательные элементы одномерного массива...

Все положительные элементы массива поставить в начало, а отрицательные - в конец - C++
Помогите решить такую задачу пжл: дан одномерный массив "а" (состоящий из вещественных чисел). Необходимо пройдя по массиву один раз все...

В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования - C++
Здравствуйте форумчане! Подскажите, как решить данные задания. Отстаю от группы, а так и не разобрался в этой теме. Используя...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....

Все отрицательные элементы массива перенести в начало, а все остальные - в конец - C++
помогите пожалуйста))) преобразовать массив по следующему правилу (воспользовавшись массивом у как вспомогательным):все отрицательные...

Все отрицательные цифры поместить в начало массива, а положительные в конец - C++
4. Дан массив положительных и отрицательных чисел. Переписать массив так, чтобы все отрицательные цифры были в начале массива, а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
24.04.2014, 23:55 #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
32
33
34
35
36
#include <iostream>
using namespace std;
 
void vyvod_massiva(int mas[], int raz)
{
for (int i=0;i<raz;i++)
cout<<mas[i]<<" ";
}
void obrabotka(int mas[], int raz)
{
int i=0,j=-1,z;
 
do
{
while (mas[i]<0 && i<raz) i++;
if (j<0)
j=i+1;
else j++;
while (j<raz && mas[j]>=0) j++;
z=mas[j];
if (i<raz && j<raz)
{
for (int k=j;k>i;k--)
mas[k]=mas[k-1];
mas[i]=z;
}
i++;
}while (i<raz);
}
int main()
{
int A[10]={2,0,-1,6,-7,8,-4,7,12,-3};
obrabotka(A,10);
vyvod_massiva(A,10);
return 0;
}
так вроде
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6472 / 3120 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
25.04.2014, 00:25 #3
anya_anya, у меня сортировка медленнее, но инициализация может пригодиться.
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 <iostream>
#include<ctime>
using namespace std;
 
int rnd_sign(){
return rand()%2;
}
 
int rnd_number(int n){
return rand()%n +1;
}
 
void init_arr( int *arr, int sz, int max_val){
    for( int i = 0; i < sz; ++i ){
        arr[i] = rnd_number(max_val);
        if(rnd_sign())arr[i] = -arr[i]; 
    }
}
 
void print_arr( int *arr, int sz ){
for( int i = 0; i < sz; ++i )
cout<<arr[i]<<" ";
}
 
int negative_count( int *arr, int sz ){
int cnt=0;
for( int i = 0; i < sz; ++i ) 
if ( arr[i] < 0 ) cnt++;
return cnt;
}
 
void sort_by_sign( int *arr, int sz ){
int number_of_negatives = negative_count( arr, sz );
int *negative_arr = new int[number_of_negatives]; 
int number_of_positives = sz-number_of_negatives;
int *positive_arr = new int[number_of_positives];
int neg_cnt=0, pos_cnt=0;
for( int i = 0; i < sz; ++i ) 
if ( arr[i] < 0 )negative_arr[neg_cnt++] = arr[i];
else
positive_arr[pos_cnt++] = arr[i];
for( int i = 0; i < number_of_negatives; ++i )
arr[i]=negative_arr[i];
 pos_cnt=0;
for( int i = number_of_negatives; i < sz; ++i )
arr[i]=positive_arr[i-number_of_negatives];
delete []negative_arr;
delete []positive_arr;
}
 
int main(){
const int A_sz = 18;
const int max_value_A = 180;
const int B_sz = 10;
const int max_value_B = 100;
 
srand((size_t)time(0));
int A[A_sz];
init_arr( A, A_sz, max_value_A);
cout<<"A["<<A_sz<<"]"<<endl;
print_arr( A, A_sz );
cout<<endl;
sort_by_sign( A, A_sz );
cout<<"sorted A["<<A_sz<<"]"<<endl;
print_arr( A, A_sz );
cout<<endl;
 
int B[B_sz];
init_arr( B, B_sz, max_value_B);
cout<<"B["<<B_sz<<"]"<<endl;
print_arr( B, B_sz );
cout<<endl;
sort_by_sign( B, B_sz );
cout<<"sorted B["<<B_sz<<"]"<<endl;
print_arr( B, B_sz );
cout<<endl;
 
cout<<endl;
system("pause"); 
    return 0; 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 00:25
Привет! Вот еще темы с ответами:

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

Необходимо, пройдя по массиву один раз, все его положительные элементы поставить в начало а отрицательные в конец - C++
Помогите решить такую задачу пжл: дан одномерный массив &quot;а&quot; (состоящий из вещественных чисел). Необходимо пройдя по массиву один раз все...

В одномерном массиве все отрицательные элементы переместить в начало массива - C++
в одномерном массиве все отрицательные элементы переместить в начало массива, а остальные - в конец с сохранением порядка следования не...

Все положительные элементы поместить в начало массива В(n), а отрицательные элементы — в начало массива С(n) - C++
Ребята. Помогите с задачей пожалуйста. Дан массив А(n). Все положительные его элементы поместить в начало массива В(n), а...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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