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

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

Войти
Регистрация
Восстановить пароль
 
Никита321
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4
#1

Написать программу, которая увеличивает положительные элементы матрицы - C++

21.02.2015, 08:11. Просмотров 262. Ответов 8
Метки нет (Все метки)

Написать программу, которая увеличивает положительные элементы матрицы A(m*x) на 5

[DELETED]

 Комментарий модератора 
Переписывайте задачу непосредственно в сообщение!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2015, 08:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу, которая увеличивает положительные элементы матрицы (C++):

Напишите программу, которая увеличивает элементы массива с четными индексами на «1» - C++
3 Напишите программу, которая увеличивает элементы массива с четными индексами на «1». Ввод данных в одномерный целочисленный массив...

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

Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. - C++
Помогите плз написать... Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы...

Написать программу, которая отрицательные значения массива меняет на 0, а положительные на 1. - C++
Необходимо написать программу, которая отрицательные значения массива меняет на 0, а положительные на 1. Массив вводится с клавиатуры.

Всю голову сломала этими матрицами! Дана матрица.Написать программу, которая упорядочивает элементы каждой строки этой матрицы по возрастанию - C++
Дана матрица А(nxn). Написать программу, которая упорядочивает элементы каждой строки этой матрицы по возрастанию. помогите пожалуйста,...

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

8
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,770
Записей в блоге: 3
Завершенные тесты: 1
21.02.2015, 08:38 #2
ну а где ж нам матрицу то взять? Тож самим писать, да?
0
Никита321
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4
21.02.2015, 08:40  [ТС] #3
все, что есть, мне больше ничего не известно, я вообще не программист и задача не моя)
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,770
Записей в блоге: 3
Завершенные тесты: 1
21.02.2015, 08:52 #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
#include <iostream>
#include <vector>
 
template < typename T >
std::ostream & operator<< ( std::ostream & stream , const std::vector<T> & vec )
{
   for ( auto & e : vec )
      stream << e << ' ' ;
   return stream ;
}
 
template < typename T >
std::ostream & operator<< ( std::ostream & stream , const std::vector< std::vector<T> > & vec )
{
   for ( auto & e : vec )
      stream << e << '\n' ;
   return stream ;
}
 
 
int main()
{
   size_t m = 0 , x = 0 ;
   std::cin >> m >> x ;
   std::vector<std::vector<int>> vec ( x , std::vector<int>(m,3) ) ;
   std::cout << vec << "\n\n" ;
   for ( auto & obj : vec )
      for ( auto & e : obj )
         if ( e > 0 )
         e+=5 ;
   std::cout << vec << std::endl ;
}
1
Никита321
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4
21.02.2015, 08:53  [ТС] #5
ого, спасибо!
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
21.02.2015, 11:16 #6
Croessmah, не хватает кода, заполняющего массив нужными значениями.
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,770
Записей в блоге: 3
Завершенные тесты: 1
21.02.2015, 11:18 #7
Цитата Сообщение от zss Посмотреть сообщение
не хватает кода, заполняющего массив нужными значениями.
А это что?
C++
1
std::vector<std::vector<int>> vec ( x , std::vector<int>(m,3) ) ;
Нигде не указано как должно заполняться, так что полет моей фантазии пришел к такому вот решению.
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
21.02.2015, 13:49 #8
Для VS 2008 с заполнением случайными числами
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
namespace std
{
    // перегрузка вывода переменной типа vector<T>
template < typename T >
  ostream & operator<< (ostream & stream , vector<T> & vec )
  {
   ostream_iterator<T> out(stream," ");
   copy(vec.begin(),vec.end(),out);
   return stream ;
  }
    // перегрузка вывода переменной типа vector<vector<T> >
  template < typename T >
  ostream & operator<< ( std::ostream & stream , vector<vector<T> > & vec )
  {
      for (vector<vector<T> >::iterator e=vec.begin();e!=vec.end();++e)
        stream <<*e<< '\n' ;
      return stream ;
  }
} 
// функция прибавления 5
int Add5(int x)
{
    return x+5;
}
// класс для заполнения случайными числами, 
// count используется для генерации разных начальных значений 
class random_fill
{
    static int count;
public:
    random_fill(){srand((unsigned)time(NULL)+count++);}
    int operator()(void){return rand()%100;}
};
int random_fill::count=0;
 
int main()
{
   size_t m = 0 , x = 0 ;
   cout<<"m=?";
   std::cin >> m;
   cout<<"x=?";
   std::cin >> x;
   
   std::vector<std::vector<int>> vec( x , std::vector<int>(m) ) ; // создание массива vec[x][m]
   for (vector<vector<int> >::iterator e=vec.begin();e!=vec.end();++e) 
       generate(e->begin(),e->end(),random_fill());// заполнение случайными числами через random_fill
 
   std::cout << vec << "\n\n" ;
   
   for (vector<vector<int> >::iterator e=vec.begin();e!=vec.end();++e)
      transform(e->begin(),e->end(),e->begin(),Add5); // прибавление 5
   cout << vec << endl ;
   system("pause");
   return 0;
}
А вот так будет более изящно:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
namespace std
{
    // перегрузка вывода переменной типа vector<T>
template < typename T >
  ostream & operator<< (ostream & stream , vector<T> & vec )
  {
   ostream_iterator<T> out(stream," ");
   copy(vec.begin(),vec.end(),out);
   return stream ;
  }
    // перегрузка вывода переменной типа vector<vector<T> >
  template < typename T >
  ostream & operator<< ( std::ostream & stream , vector<vector<T> > & vec )
  {
      for (vector<vector<T> >::iterator e=vec.begin();e!=vec.end();++e)
        stream <<*e<< '\n' ;
      return stream ;
  }
} 
// функция прибавления 5 к целому числу
int Add(int x)
{
    return x+5;
}
// функция прибавления 5 к вектору
void Add5(vector<int>& x) 
{
    transform(x.begin(),x.end(),x.begin(),Add);
}
// класс для генерации случайных чисел, 
// count используется для генерации разных начальных значений 
class random_fill
{
    static int count;
public:
    random_fill(){srand((unsigned)time(NULL)+count++);}
    int operator()(void){return rand()%100;}
};
// функция заполнения случайными числами вектора
void VecFill(vector<int>& x)
{
    generate(x.begin(),x.end(),random_fill());
}
int random_fill::count=0;
//-----------------------------------------
int main()
{
   size_t m,x;
   cout<<"m=?";
   std::cin >> m;
   cout<<"x=?";
   std::cin >> x;
   
   std::vector<std::vector<int>> vec ( x , std::vector<int>(m) ) ; // создать массив
 
   for_each(vec.begin(),vec.end(),VecFill); // для каждой строки выполнить VecFill
 
   std::cout << vec << "\n\n" ; // вывод исходного массива
   
   for_each(vec.begin(),vec.end(),Add5); // для каждой строки выполнить Add5
   
   cout << vec << endl ;// вывод результата
   
   system("pause");
   return 0;
}
1
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,770
Записей в блоге: 3
Завершенные тесты: 1
21.02.2015, 16:42 #9
zss, он тему во фрилансе тоже создал
0
21.02.2015, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2015, 16:42
Привет! Вот еще темы с ответами:

написать программу которая суммирует матрицы - C++
Напишите программу, которая суммирует матрицы. Размер матриц произвольный. Значения вводятся с клавиатуры

Написать программу которая меняет местами элементы массива - C++
Уважаемые програмисты помогите решить задачи 1,Написать программу которая меняет местами элементы массива относительно его середины...

Написать программу, которая будет изменять элементы массива - C++
Дан целочисленный массив из 25 элементов. Если элемент чётный, то прибавить к нему первый, если нечётный - прибавить последний. Первый и...

Написать программу, которая меняет местами элементы массива - C++
1.Написать программу, которая меняет местами элементы массива относительно его середины (зеркальное отображение элементов). Первый элемент...


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

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

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