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

Отрицательные элементы в многомерной матрице - C++

Восстановить пароль Регистрация
 
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
08.07.2011, 14:09     Отрицательные элементы в многомерной матрице #1
Всем привет)
Вот такой вопрос, найти отрицательные элементы в многомерной матрицы, и записать их в одномерный массив.
Вот что то попытался написать...

C++
1
2
3
4
5
6
7
8
9
10
11
12
void main()
{int const n=5;
int const m=5;
int const b=10;
int mass[n][m];
for (int i = 0; i < n; i++)
for (int j=0;j<m;j++)
cout << "Vvedite element -> ";
cin >> mass[i][j];
for(int i = 0; i < n-1; i++)
for(int j=0;j<m;j++)
if (a[i] < 0)
Спасибо за ваши ответы)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2011, 14:09     Отрицательные элементы в многомерной матрице
Посмотрите здесь:

C++ В прямоугольной матрице подсчитать количество столбцов, содержащих отрицательные элементы.
C++ В матрице положительные элементы заменить на единичные , а отрицательные обнулить
В матрице A(3,5) положительные элементы замнить на единичные, а отрицательные на противоположные. Вывести печать полученную матрицу. C++
если в массиве положительные элементы или отрицательные элементы будут соседями C++
C++ В матрице целых чисел заменить все отрицательные элементы нулями
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.07.2011, 14:47     Отрицательные элементы в многомерной матрице #2
C++
1
2
3
4
for (int j=0;j<m;j++) {
cout << "Vvedite element -> ";
cin >> mass[i][j]; 
}
C++
1
2
3
4
5
int a[n*m]; int cur=0;
for(int i = 0; i < n; i++)
for(int j=0;j<m;j++)
if (mass[i][j]<0)
a[cur++]=mass[i][j];
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
09.07.2011, 18:25  [ТС]     Отрицательные элементы в многомерной матрице #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
void main()
{int const n=5;
int const m=5;
int mass[n][m];
for (int i=0;i<n;i++)
for (int j=0;j<m;j++) {
cout << "Vvedite element -> ";
cin >> i >> j; }
int a[n*m]; int cur=0;
for(int i = 0; i < n; i++)
for(int j=0;j<m;j++)
if (mass[i][j]<0)
a[cur++]=mass[i][j];
cout << "Rez: " << cur;
_getch();}
Вот сделал, выдает не правильный результат....((Подскажите как правильно записать пожалуйста?
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
09.07.2011, 19:17     Отрицательные элементы в многомерной матрице #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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
using namespace std;
 
int main ( )
{
  setlocale(LC_ALL,"Rus");
  int const n=5;
  int const m=5;
  int mass[n][m];
  for (int i = 0; i < n; i++)
  for (int j = 0; j < m; j++)
  {
  cout << "Vvedite element -> ";
  cin >> mass[i][j];
  }
  vector< int> mas;
  copy_if ( &(**mass), &(**mass)+ n*m, inserter ( mas, mas.end()), bind2nd( less< int>(), 0));
  cout << "Отрицательные элементы : ";
  copy ( mas.begin(), mas.end(), ostream_iterator< int> ( cout, " "));
  system("pause");
  return 0;
}
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
09.07.2011, 19:18     Отрицательные элементы в многомерной матрице #5
тебя же поправили уже:
C++
1
2
3
4
for (int i=0;i<n;i++)
for (int j=0;j<m;j++) {
cout << "Vvedite element -> ";
cin >> mass[i][j]; }
все остальное верно - выводит количество отрицательных элементов.
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
11.07.2011, 18:22  [ТС]     Отрицательные элементы в многомерной матрице #6
Цитата Сообщение от An1ka Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
using namespace std;
 
int main ( )
{
  setlocale(LC_ALL,"Rus");
  int const n=5;
  int const m=5;
  int mass[n][m];
  for (int i = 0; i < n; i++)
  for (int j = 0; j < m; j++)
  {
  cout << "Vvedite element -> ";
  cin >> mass[i][j];
  }
  vector< int> mas;
  copy_if ( &(**mass), &(**mass)+ n*m, inserter ( mas, mas.end()), bind2nd( less< int>(), 0));
  cout << "Отрицательные элементы : ";
  copy ( mas.begin(), mas.end(), ostream_iterator< int> ( cout, " "));
  system("pause");
  return 0;
}
Спасибо за ваш вариант, попробовал, выдает 4 ошибки, одна из них "bin2nd не принимает значений..."
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.07.2011, 21:21     Отрицательные элементы в многомерной матрице #7
#include <functional> попробуй
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
12.07.2011, 12:08  [ТС]     Отрицательные элементы в многомерной матрице #8
Цитата Сообщение от OstapBender Посмотреть сообщение
#include <functional> попробуй
Спасибо))
Теперь осталась одна ошибка, не найден идентификатор copy_if..
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
12.07.2011, 12:11     Отрицательные элементы в многомерной матрице #9
а компиль какой?
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
12.07.2011, 12:13  [ТС]     Отрицательные элементы в многомерной матрице #10
Microsoft Visual Studio 2008
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
12.07.2011, 12:18     Отрицательные элементы в многомерной матрице #11
странно. должно работать. буквы большие не закрались?
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
12.07.2011, 12:34  [ТС]     Отрицательные элементы в многомерной матрице #12
Цитата Сообщение от co6ak Посмотреть сообщение
странно. должно работать. буквы большие не закрались?
Та вроде нет таких....=(

Добавлено через 4 минуты
А из-за чего такое может быть, может какую ту альтернативу нужно?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
12.07.2011, 12:35     Отрицательные элементы в многомерной матрице #13
альтернатива есть.
заменить copy_if шаблоном
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
12.07.2011, 12:39  [ТС]     Отрицательные элементы в многомерной матрице #14
Цитата Сообщение от co6ak Посмотреть сообщение
альтернатива есть.
заменить copy_if шаблоном
bind или back_inserter ? Или это не то?
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
12.07.2011, 14:25     Отрицательные элементы в многомерной матрице #15
Цитата Сообщение от leha-demi Посмотреть сообщение
Спасибо))
Теперь осталась одна ошибка, не найден идентификатор copy_if..
C++
1
std::copy_if
Везде, где ругается, что найти не может пропиши имя:
C++
1
std::

Или
C++
1
using namespace std;
В начале программы написать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2011, 15:22     Отрицательные элементы в многомерной матрице
Еще ссылки по теме:

C++ В матрице целых чисел заменить все отрицательные элементы нулями.Подсчитать количество замен
C++ Обработать положительные и отрицательные элементы в целочисленной матрице
C++ В матрице упорядочить элементы нечетных столбцов по убыванию. Все отрицательные заменить на ноль

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
 Аватар для grizlik78
1884 / 1416 / 102
Регистрация: 29.05.2011
Сообщений: 2,961
12.07.2011, 15:22     Отрицательные элементы в многомерной матрице #16
Вообще-то в C++03 алгоритма std::copy_if нет, есть std::remove_copy_if
Yandex
Объявления
12.07.2011, 15:22     Отрицательные элементы в многомерной матрице
Ответ Создать тему
Опции темы

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