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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.93
Виталий_Сигов
5 / 5 / 0
Регистрация: 07.10.2009
Сообщений: 59
16.10.2011, 22:53     Как перенести все отрицательные элементы из одного массива в другой. #1
Здравствуйте, уважаемые форумчане.
Большая просьба помочь: Как из одномерного массива целых чисел все отрицательные элементы перенести в новый массив ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 22:53     Как перенести все отрицательные элементы из одного массива в другой.
Посмотрите здесь:

[C++]Все отрицательные элементы массива перенести в начало, а все остальные - в конец C++
Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные C++
C++ Из одного массива переписать отрицательные элементы в другой массив и упорядочить их по возрастанию
Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы C++
Как ввести элементы одного массива в другой массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
16.10.2011, 23:27     Как перенести все отрицательные элементы из одного массива в другой. #2
Цитата Сообщение от Виталий_Сигов Посмотреть сообщение
Как из одномерного массива целых чисел все отрицательные элементы перенести в новый массив ?
Виталий_Сигов, ну и в чём ступор то? Цикл, условие, копирование. Больше ничего не надо.
svinopapa
 Аватар для svinopapa
10 / 10 / 3
Регистрация: 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;
}
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.10.2011, 23:50     Как перенести все отрицательные элементы из одного массива в другой. #4
svinopapa,
Цитата Сообщение от svinopapa Посмотреть сообщение
int a[n]
такой код скомпилируетя только в gcc/mingw
svinopapa
 Аватар для svinopapa
10 / 10 / 3
Регистрация: 05.01.2011
Сообщений: 39
16.10.2011, 23:50     Как перенести все отрицательные элементы из одного массива в другой. #5
Надо только английские надписи заменить тебе, а то у меня проблемы с кодировкой, поэтому я их использовал.
svinopapa
 Аватар для svinopapa
10 / 10 / 3
Регистрация: 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;
}
Вообщем, надеюсь хоть какой-то подойдёт
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 15:35     Как перенести все отрицательные элементы из одного массива в другой.
Еще ссылки по теме:

Переписать из одного массива в другой все элементы, значения которых больше -1.8 и меньше 2.7 C++
Перенести все кратные 5 элементы из одного массива в другой C++
Перенести из одного файла все строки, содержащие конкретное слово в другой C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
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;
}
Yandex
Объявления
17.10.2011, 15:35     Как перенести все отрицательные элементы из одного массива в другой.
Ответ Создать тему
Опции темы

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