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

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

Войти
Регистрация
Восстановить пароль
 
 
na3ar1y
48 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 163
#1

Массивы, нахождение отрицательного элемента! - C++

05.03.2012, 12:51. Просмотров 1016. Ответов 15
Метки нет (Все метки)

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

мой код;
C++
1
2
3
4
5
6
7
8
...
    int const k=5;
        int vid[k];
        for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(mas[i][j]<0) vid[i]=mas[i][j];//?????
        }}
...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2012, 12:51     Массивы, нахождение отрицательного элемента!
Посмотрите здесь:

Нахождение последнего отрицательного элемента массива - C++
Программа ищет последний отрицательного элемент массива. Не могу понять ошибки программы: 3 from F:\...\2_17.C In file included from...

Нахождение максимального элемента в массиве и его индекс (элемента) - C++
Доброго времени суток. Вот исходный код поиска максимального элемента массива: #include&quot;stdafx.h&quot; #include&quot;stdio.h&quot; ...

Индекс второго отрицательного элемента в массиве - C++
Вывести индекс 2 отрицательного элемента в массиве

Найти значение последнего отрицательного элемента - C++
Дана последовательность из n вещественных чисел. Найти значение последнего отрицательного элемента. Массив от -5 до 4, уже дан,при...

Определить значение и номер максимального отрицательного элемента. - C++
Заданный одномерный массив, состоящий из N действительных элементов. Определить значение и номер максимального отрицательного элемента.

Найти номер первого отрицательного элемента массива - C++
найти номер первого отрицательного элемента массива. не могу написать программу))) вот кое что сделал, но работает неправильно: ...

Упорядочение массива по возрастанию до первого отрицательного элемента - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; using namespace std; int main() { int n=8,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2012, 12:55     Массивы, нахождение отрицательного элемента! #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> vec  = {-5, 1, -3, 4, -10, 2};
    std::vector<int> vec2;
    std::copy_if(vec.begin(), vec.end(), std::back_inserter(vec2), [](const int val) {return val < 0;});
    std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<int>(std::cout, "\n"));
}
http://liveworkspace.org/code/2dd8d4...7d61c57f0acc90
na3ar1y
48 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 163
05.03.2012, 12:59  [ТС]     Массивы, нахождение отрицательного элемента! #3
ForEveR сложноватый у тебя синтаксис написания программы ....
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
05.03.2012, 13:06     Массивы, нахождение отрицательного элемента! #4
Цитата Сообщение от na3ar1y Посмотреть сообщение
ForEveR сложноватый у тебя синтаксис написания программы ....
Наоборот, правильный. Ничего лишнего.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2012, 13:08     Массивы, нахождение отрицательного элемента! #5
na3ar1y, Элементарный. По мне такой синтаксис не в пример сложнее.
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 <iostream>
 
int main()
{
   int array[] = {-1, 2, 3, -5, 4, -10};
   size_t neg_cnt = 0;
   for (size_t i = 0; i < sizeof(array) / sizeof(*array); ++i)
   {
      if (array[i] < 0)
      {
         ++neg_cnt;
      }
   }
   int* result_array = new int[neg_cnt];
   for (size_t i = 0, j = 0; i < sizeof(array) / sizeof(*array); ++i)
   {
      if (array[i] < 0)
      {
         result_array[j] = array[i];
         ++j;
      }
   }
   for (size_t i = 0; i < neg_cnt; ++i)
   {
      std::cout << result_array[i] << " ";
   }
   std::cout << std::endl;
}
http://liveworkspace.org/code/b5df44...9dea5bdf1c28a0
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
05.03.2012, 13:30     Массивы, нахождение отрицательного элемента! #6
std::vector<int> vec = {-5, 1, -3, 4, -10, 2};
и
std::copy_if(vec.begin(), vec.end(), std::back_inserter(vec2), [](const int val) {return val < 0;});

А что это за запись такая? Ее вроде не все компиляторы поддерживают?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2012, 13:37     Массивы, нахождение отрицательного элемента! #7
Avazart, Не все. Список инициализации и лямбда-функция.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.03.2012, 13:41     Массивы, нахождение отрицательного элемента! #8
Цитата Сообщение от Avazart Посмотреть сообщение
std::copy_if(vec.begin(), vec.end(), std::back_inserter(vec2), [](const int val) {return val < 0;});
Можно заменить на
C++
1
std::copy_if(vec.begin(), vec.end(), std::back_inserter(vec2), std::bind2nd(std::less< int >(), 0) );
Тогда и устаревшие компиляторы будут понимать.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2012, 13:45     Массивы, нахождение отрицательного элемента! #9
diagon, Не учтена только 1 проблема... std::copy_if включен ТОЛЬКО в стандарт C++11. Раньше в стандарте его не было.

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main()
{
   int array[] = {-1, 1, -3, 2, -4, 3};
   std::copy_if(array, array + sizeof(array) / sizeof(*array), std::ostream_iterator<int>(std::cout, "\n"), 
         std::bind2nd(std::less<int>(), 0));
}
Bash
1
2
3
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp
new.cpp: В функции «int main()»:
new.cpp:9:4: ошибка: «copy_if» не является элементом «std»
Bash
1
2
3
4
5
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp -std=c++0x
forever@pterois:~/My_pro1/cpp_pro$ ./new 
-1
-3
-4
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.03.2012, 13:48     Массивы, нахождение отрицательного элемента! #10
Цитата Сообщение от ForEveR Посмотреть сообщение
diagon, Не учтена только 1 проблема... std::copy_if включен ТОЛЬКО в стандарт C++11. Раньше в стандарте его не было.
Да, не заметил.
Тогда так
C++
1
std::remove_copy_if(vec.begin(), vec.end(), std::back_inserter(vec2), std::bind2nd(std::greater_equal< int >(), 0) );
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
05.03.2012, 14:11     Массивы, нахождение отрицательного элемента! #11
Ну RAD 2009 ругается
Миниатюры
Массивы, нахождение отрицательного элемента!  
na3ar1y
48 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 163
05.03.2012, 14:17  [ТС]     Массивы, нахождение отрицательного элемента! #12
я новичок в программировании и понимаю только этот синтаксис программирования, но теперб буду и знать что есть и такой)

Добавлено через 1 минуту
что за тип size_t ???? впервые слышу о таком
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
05.03.2012, 14:20     Массивы, нахождение отрицательного элемента! #13
А Visual ругается на инициализацию
Миниатюры
Массивы, нахождение отрицательного элемента!  
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2012, 14:31     Массивы, нахождение отрицательного элемента! #14
Avazart, Ну не особо они пока поддерживают C++0x. На данный момент лучше всего поддерживает gcc. Хотя студия 11 вроде как реализует все, что заложено в новом стандарте (или почти все).

na3ar1y, typedef на unsigned int.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 14:31     Массивы, нахождение отрицательного элемента!
Еще ссылки по теме:

Найти: Номер первого отрицательного элемента массива - C++
написать такую же программу используя функции //Задача №1 Дан массив элементов длины N. Найти: Номер первого отрицательного элемента...

Найти номер последнего отрицательного элемента массива - C++
# include &lt;iostream&gt; using namespace std; void main () { int i=0; int p; setlocale(LC_ALL, &quot;rus&quot;); cout&lt;&lt;&quot;Введите числа...

Массив: Как найти номер последнего отрицательного элемента? - C++
Как найти номер последнего отрицательного элемента?

Найти произведение элементов массива до первого не отрицательного элемента - C++
Дан массив из 1000 случайных целых чисел в диапазоне от от -5 до 2,найти произведение элементов до первого не отрицательного элемента .Как...

Найти номер первого отрицательного элемента, делящегося на 5 с остатком 2. - C++
Найти номер первого отрицательного элемента, делящегося на 5 с остатком 2. я составила программу она идет только учительница просит с...


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

Или воспользуйтесь поиском по форуму:
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,452
Записей в блоге: 17
05.03.2012, 14:31     Массивы, нахождение отрицательного элемента! #15
Интересно как дело обстоит с XE,Qt
И списки инициализации как я пологаю перекочевали из boost-a.
Yandex
Объявления
05.03.2012, 14:31     Массивы, нахождение отрицательного элемента!
Ответ Создать тему
Опции темы

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