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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
#1

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

18.11.2010, 23:26. Просмотров 3753. Ответов 16
Метки нет (Все метки)

У меня есть динамический масив... Как удалить все отрицательние елементи?
if(mass[i]<0)
а дальше?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2010, 23:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить все отрицательные элементы массива (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
18.11.2010, 23:28 #2
Если я не ошыбаюсь, удалять елементы из масива нельзя, их можно только обнулять.
1
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
18.11.2010, 23:30  [ТС] #3
тоисть вот так сделать мне:
if(mass[i]<0)
mass[i]=0;
?
0
Soft
4 / 4 / 1
Регистрация: 20.09.2010
Сообщений: 102
18.11.2010, 23:31 #4
Если не ошибаюсь через операцию delete
C++
1
delete [] mass
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
18.11.2010, 23:31 #5
Еще как вариант все положытельние елементи можно переписать в другой массив.
1
CyBOSSeR
Эксперт C++
2302 / 1672 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
18.11.2010, 23:32 #6
Barca, из массива ничего удалять нельзя.
Есть два варианта:
1. Переместить удаляемые элементы в конец массива и расматривать его как массив меньшего размера.
2. Скопировать неудаляемые элементы в новый массив меньшего размера.
0
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
18.11.2010, 23:34  [ТС] #7
Ну вот код...пока я делаю ето в цикле, ищу отрицательние елементи....
i
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
nt  n;       
 cout<<"Rozmir n: ";    
 cin>>n; 
 
 int *mass = new int[n];       
 
 for (int i = 0; i < n; i++)    
 {
         cout<<i+1<<" :";
         cin>>mass[i];
 }
 
 for (int i = 0; i < n; i++)  
 {
  if (mass[i] < 0)
  {
                mass[i] = 0;
 
  }
   }
 for (int i = 0; i < n; i++)t
{   
         cout<<i+1<<" : ";
         cout<<mass[i]<<endl;
 }
 delete[] mass;         
system("pause");
        return 0;
}
Добавлено через 27 секунд
Так правильно?
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
18.11.2010, 23:46 #8
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand((unsigned)time(NULL));
    int *arr,*arr1;
    int n,count=0,j=0;
    cout<<"Enter size array: ";
    cin>>n;
    arr=new int[n];
    cout<<"Array: ";
    for(int i=0; i<n; i++)
    {
        arr[i]=rand()%9-1;
        cout<<arr[i]<<" ";
         if(arr[i]>=0)
         {
             count++;
         }
    }
    arr1 = new int[count];
    for(int i=0; i<n; i++)
    {
        if(arr[i]>=0)
        {
            arr1[j]=arr[i];
            j++;
        }
    }
    cout<<endl<<"Array of positive elements";
    for(int i=0; i<j; i++)
    {
        cout<<arr1[i]<<" ";
    }
  cout<<endl; 
  system("pause");
  delete [] arr;
   delete [] arr1;
 return 0;
}
0
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
18.11.2010, 23:54  [ТС] #9
А мой вариант не правильний?
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
19.11.2010, 00:24 #10
К ознакомлению
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <iterator>
 
using namespace std;
 
bool cond(int x)
{  return x < 0;
}
 
int main() { 
 int array []= {12, 34, 45, 56, -23, 0, -987, -45, 13}; 
 vector<int> v (array, array + 9);
 cout << endl;
 vector<int>::iterator new_end;
 new_end = remove_if(v.begin(), v.end(), cond);
 v.erase(new_end, v.end());
 for (int i=0; i < v.size(); i++)
  cout << " " << v[i];
 getchar ();
 return 0;
}
0
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
19.11.2010, 20:41  [ТС] #11
Мне нужно мою програму переделать, там отрицательние елементи не занулить а создать еще один масив и их туда закинуть...
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
int  n;       
 cout<<"Rozmir n: ";    
 cin>>n; 
 
 int *mass = new int[n];       
 
 for (int i = 0; i < n; i++)    
 {
         cout<<i+1<<" :";
         cin>>mass[i];
 }
 
 for (int i = 0; i < n; i++)  
 {
  if (mass[i] < 0)
  {
                mass[i] = 0;
 
  }
   }
 for (int i = 0; i < n; i++)t
{   
         cout<<i+1<<" : ";
         cout<<mass[i]<<endl;
 }
 delete[] mass;         
system("pause");
        return 0;
}
 Комментарий модератора 
Используйте теги выделения кода.
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.11.2010, 20:56 #12
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
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
 
 int  main()
 {
   int n,count=0,j=0;
   int *mass1, *mass;
   cout<<"Rozmir n: ";  
   cin>>n; 
   mass = new int[n]; 
   for (int i = 0; i < n; i++) 
     {
         cout<<i+1<<" :";
         cin>>mass[i];
          if(mass[i]<0)
          {
              count++;
          }
     }
    mass1 = new int[count];
    cout<<endl<<"Nagative elements ";
    for (int i = 0; i < n; i++) 
      {
         if (mass[i] < 0)
           {
              mass1[j] = mass[i];
              j++;
           }
      }
     for (int i = 0; i < count; i++)
       { 
           cout<<mass1[i]<<" ";
       }
    delete[] mass;
    delete [] mass1;
    system("pause");
    return 0;
}
0
Barca
13 / 13 / 0
Регистрация: 22.10.2010
Сообщений: 80
19.11.2010, 20:58  [ТС] #13
Спасибо огромное!=)
0
Shman
3 / 3 / 2
Регистрация: 30.04.2012
Сообщений: 212
02.06.2012, 14:01 #14
Хочу добавить проверку "Если массив пустой, то выводить, что ни одно положительное число не введено в массив, если не пустой, то вывести положительные числа". Собственно, как сделать проверку на пустой массив? Ка обозночается пустой массив?
0
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
02.06.2012, 15:00 #15
Может быть использовать vector.h?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 15:00
Привет! Вот еще темы с ответами:

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

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

1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными э - C++
1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с...

Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элем - C++
Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.06.2012, 15:00
Ответ Создать тему
Опции темы

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