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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Vampire110
17 / 17 / 0
Регистрация: 18.05.2011
Сообщений: 33
#1

Массив: Удалить из массива все отрицательные элементы. - C++

26.11.2011, 16:16. Просмотров 3834. Ответов 44
Метки нет (Все метки)

Задан массив размера N. Удалить из массива все отрицательные элементы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: Удалить из массива все отрицательные элементы. (C++):

если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален - C++
задан массив Х целых чисел. если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном...

Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В. - C++
Даны массивы целых чисел A и B. Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные...

Удалить из массива все отрицательные элементы - C++
Создать динамический массыв. Розмерность массыва ввести из клавиатуры. Задание: Удалить из массыва все отрицательные елементы.

Удалить все отрицательные элементы массива - C++
У меня есть динамический масив... Как удалить все отрицательние елементи? if(mass<0) а дальше?

Удалить из массива все отрицательные элементы; - C++
Удалить из массива все отрицательные элементы;

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

44
Сыроежка
Заблокирован
26.11.2011, 16:29 #2
Vampire110,

Проблема в том, что из массива нельзя удалить отрицательные элементы. Их лишь можно заменить на какие-нибудь другие значения. То есть количество элементов в массвиве не меняется.
0
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
26.11.2011, 17:11 #3
пусть нам дан массив M[N], тогда алгоритм удаления отрицательных чисел следующий
C++
1
2
3
4
5
6
7
k=1;
for(i=(N-1); i>-1; i--)
     if (M[i]<0)
        {
           for (j=i; j<(N-k); j++)
                 M[j]=M[j+1];
         }
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
26.11.2011, 17:20 #4
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>
#include <time.h>
 
int main()
{
    srand( time ( NULL ) );
    int *mas_a;
    int *mas_b;
    std::cout << "Enter number of elements: ";
    int N;
    std::cin >> N;
    mas_a = new int ( N );
    int counter = 0;
    std::cout << std::endl;
    for ( int i = 0; i < N; i ++ )
    {
        mas_a[i] = rand() % 100 - rand() % 50;
        std::cout << mas_a[i];
        if ( mas_a[i] < 0 )
            counter++;
    }
    mas_b = new int ( N - counter );
    for ( int i = 0; i < N; i ++ )
    {   
        int j = 0;
        if ( mas_a[i] >= 0 )
            mas_b[j++] = mas_a[i];
    }
    std::cout << "nResulted massive: " << std::endl;
    for ( int i = 0; i < N - counter; i ++ )
    {   
        std::cout << mas_b[i];
    }
    std::cin.get();
    return 0;
}
0
mc.Duck
Заблокирован
26.11.2011, 17:25 #5
Vampire110, удалить элементы из массива нельзя, но можно составить новый(реализация на 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
#include<iostream>
#include<cstdlib>
using namespace std;
 
const int n=10;
 
int main()
{
    int mass[n];
    int counter=0;
    int counter2=0;
    for(int i=1;i<=10;i++) mass[i]=rand() %10-3;
    cout<<"Mass 1: ";
    for(int i=1;i<=10;i++) cout<<mass[i]<<" ";cout<<endl;
    for(int i=1;i<=10;i++) if(mass[i]>=0) counter++;
    
    int *new_mass = new int [counter];
    
    for(int i=1;i<=10;i++) if(mass[i]>=0) {counter2++;new_mass[counter2]=mass[i];}
    
    cout<<"Mass 2: ";
    
    for(int i=1;i<=counter2;i++) cout<<new_mass[i]<<" ";cout<<endl;
     
    system("Pause");
    }
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
26.11.2011, 17:26 #6
mc.Duck, return?
0
Сыроежка
Заблокирован
26.11.2011, 17:26 #7
Цитата Сообщение от Boogi43 Посмотреть сообщение
пусть нам дан массив M[N], тогда алгоритм удаления отрицательных чисел следующий
C++
1
2
3
4
5
6
7
k=1;
for(i=(N-1); i>-1; i--)
     if (M[i]<0)
        {
           for (j=i; j<(N-k); j++)
                 M[j]=M[j+1];
         }
Уважаемый, вы не удалили отрицательные элементы! Рассмотрите пример int a[2] = { -1, -2 }; В условиях задачи не хватает пункта, каким значением заменить отрицательные элементы массива!

Здесь ни одно из приведенных решений не является корректным! Пока автор вопроса не скажет, каким значением заменить отрицательные элементы в масиве, задачу решить нельзя!
0
mc.Duck
Заблокирован
26.11.2011, 17:31 #8
co6ak, в C++ можно без него. В си - не знаю.
0
Сыроежка
Заблокирован
26.11.2011, 17:37 #9
Цитата Сообщение от mc.Duck Посмотреть сообщение
co6ak, в C++ можно без него. В си - не знаю.
И в С++, и в С в функции main можно опустить предложение return. Тогда компилятор сам вставляет код, который соответствуют предложению return ( 0 );
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
26.11.2011, 17:43 #10
ну-ну. удачи в начинаниях
0
Сыроежка
Заблокирован
26.11.2011, 17:46 #11
Цитата Сообщение от co6ak Посмотреть сообщение
ну-ну. удачи в начинаниях
Это вы про что?! Про то, что вы стандарт не знаете?!
0
mc.Duck
Заблокирован
26.11.2011, 17:57 #12
Сыроежка, хех) рассмешили. Ну ладно уж, со6ак, наверное, хочет показать обширность своих знаний.
0
Vampire110
17 / 17 / 0
Регистрация: 18.05.2011
Сообщений: 33
26.11.2011, 18:23  [ТС] #13
Под удалением элемента массива следует понимать изменение размера массива посредством изменения переменной хранящей размер массива а не создание нового массива.
на Pellec C как это будет выглядеть?
1
Сыроежка
Заблокирован
26.11.2011, 18:27 #14
Цитата Сообщение от Vampire110 Посмотреть сообщение
Под удалением элемента массива следует понимать изменение размера массива посредством изменения переменной хранящей размер массива а не создание нового массива.
на Pellec C как это будет выглядеть?
Вы не можете изменить размерность массива. Если вы измените значение переменной, задающий размер массива, то, фактически, вы создадите новый массив, который не будет содержать элементы исходного массива. Поэтому без промежуточного массива здесь не обойтись.
0
mc.Duck
Заблокирован
26.11.2011, 18:32 #15
Vampire110, то есть в массив типа int надо засунуть переменную типа char, например.
С ваших слов получается именно так! Переменная типа int занимает в памяти 4 байта, даже если она = 0. Ничему не равна она быть не может, т.к даже по умолчанию она хранит в себе область памяти, в которой находится.
0
26.11.2011, 18:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2011, 18:32
Привет! Вот еще темы с ответами:

Из массива Х(N) все положительные элементы записать в массив У(К), а все отрицательные элементы – в массив Z(М)... - C++
Пожалуйста помогите решить задачку на си++, заранее спасибо Из массива Х(N) все положительные элементы записать в массив У(К), а все...

Из массива вещественных чисел удалить все отрицательные элементы - C++
Помогите пожалуйста с кодом для этой программы.(Только чтобы он был максимально простым и понятным для меня,и при использовании простых...

Из массива вещественных чисел удалить все отрицательные элементы - C++
Ребят проверьте пожалуйста мой код, почему то я не уверен,что он правильно работает,если что-то не так исправьте пожалуйста. Из...

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


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

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

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