5 / 5 / 1
Регистрация: 07.10.2009
Сообщений: 59
1

Как перенести все отрицательные элементы из одного массива в другой.

16.10.2011, 22:53. Показов 8635. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане.
Большая просьба помочь: Как из одномерного массива целых чисел все отрицательные элементы перенести в новый массив ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2011, 22:53
Ответы с готовыми решениями:

Перенести все кратные 5 элементы из одного массива в другой
Преподаватель говорит что код не правильный и функция, считающая количество элементов кратная 5 не...

Как перенести элементы из одного массива в другой?
как перенести элементы из одного массива в другой ? пример: 5, 6, 7, 8 ,9 хочу перенести только...

Перенести в начало массива все положительные элементы, а в конец массива - все отрицательные
Помогите, пожалуйста, написать программу на языке Си: Дан одномерный массив А, состоящий из N ...

Все отрицательные элементы массива перенести в начало, а все остальные - в конец
Задать массив случайных чисел из диапазона . Воспользовавшись вспомогательным массивом, все...

6
240 / 213 / 84
Регистрация: 18.03.2010
Сообщений: 750
16.10.2011, 23:27 2
Цитата Сообщение от Виталий_Сигов Посмотреть сообщение
Как из одномерного массива целых чисел все отрицательные элементы перенести в новый массив ?
Виталий_Сигов, ну и в чём ступор то? Цикл, условие, копирование. Больше ничего не надо.
0
10 / 10 / 4
Регистрация: 05.01.2011
Сообщений: 39
16.10.2011, 23:48 3
Надеюсь, что всё правильно Моя первая нормальная программа на C после Паскаля
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 <stdio.h>
 
int main(int argc, char *argv[])
{
    int n;
    printf("Enter array size:");
    scanf("%d",&n);
    int a[n],k=0;
    for (int i=0; i<n; i++) {
    printf("Enter element number %d:\n",i+1);
    scanf("%d",&a[i]);
    if (a[i]<0) k++;
    }
     int x[k],j=0;
     for (int i=0; i<n; i++)
    if (a[i]<0) {
           x[j]=a[i];
           if (k!=j) j++;
        } 
     printf("First array:\n");
     for (int i=0; i<n; i++) printf("%d ",a[i]);
     printf("\n");
     printf("Result array:\n");
     for (int i=0; i<j; i++) printf("%d ",x[i]);
     printf("\n");
    return 0;
}
0
Каратель
Эксперт С++
6608 / 4027 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
16.10.2011, 23:50 4
svinopapa,
Цитата Сообщение от svinopapa Посмотреть сообщение
int a[n]
такой код скомпилируетя только в gcc/mingw
0
10 / 10 / 4
Регистрация: 05.01.2011
Сообщений: 39
16.10.2011, 23:50 5
Надо только английские надписи заменить тебе, а то у меня проблемы с кодировкой, поэтому я их использовал.
0
10 / 10 / 4
Регистрация: 05.01.2011
Сообщений: 39
17.10.2011, 00:41 6
Я только начинаю учить) Пока так запомнил только - в Pelles работает...

Добавлено через 50 минут
А вот этот вариант работает для wxDev-C++...
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 <stdio.h>
 
int main(int argc, char *argv[])
{
    int n;
    printf("Enter array size:");
    scanf("%d",&n);
    int a[n],k=0,i;
    for (i=0; i<n; i++) {
        printf("Enter element number %d:\n",i+1);
        scanf("%d",&a[i]);
        if (a[i]<0) k++;
        }
     int x[k],j=0;
     for (i=0; i<n; i++)
        if (a[i]<0) {
           x[j]=a[i];
           if (k!=j) j++;
        }
     printf("First array:\n");
     for (i=0; i<n; i++) printf("%d ",a[i]);
     printf("\n");
     printf("Result array:\n");
     for (i=0; i<j; i++) printf("%d ",x[i]);
     printf("\n");
    system("PAUSE");
    return 0;
}
Вообщем, надеюсь хоть какой-то подойдёт
1
Эксперт С++
5054 / 3114 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
17.10.2011, 15:35 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector< int > vec((std::istream_iterator< int >(std::cin)), std::istream_iterator< int >());
    std::vector< int > copy_vec;
 
    std::copy_if(vec.begin(), vec.end(), std::back_inserter(copy_vec), [](int elem) -> bool { return elem < 0; });
 
    std::copy(copy_vec.begin(), copy_vec.end(), std::ostream_iterator< int >(std::cout, "  "));
 
    std::cout << std::endl;
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2011, 15:35
Помогаю со студенческими работами здесь

Все отрицательные элементы массива перенести в начало, а все остальные в конец
Здраствуйте, помогите пожалуйста написать программу Нужно преобразовать массив Х по следующему...

Все отрицательные элементы массива перенести в начало, а все остальные — в конец
Преобразовать массив Х по следующему правилу: все отрицательные элементы массива перенести в...

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

Из одного массива сделать два массива, в один перенести четные элементы, в другой нечетные
Здравствуйте , помогите пожалуйста с такой задачей из одного массива сделать два массива, в один...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru