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

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

Войти
Регистрация
Восстановить пароль
 
xXRUSHXx
0 / 0 / 0
Регистрация: 02.05.2015
Сообщений: 22
#1

Перестановка строк матрицы по условию - C++

17.05.2015, 16:58. Просмотров 545. Ответов 5
Метки нет (Все метки)

Даны две целочисленные матрицы размерностью [ 5х7 ] . найти разницу матриц . Определить номер первого из столбцов , содержащих хотя бы один нулевой элемент . Переставляя строки заданной матрицы , расположить их в соответствии с ростом характеристик. Характеристикой строки матрицы назовем сумму ее положительных четных элементов .
ПОМОГИТЕ СОЕДИНИТЬ ВСЕ ПО ПОРЯДКУ
C++ (Qt)
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>
#define R 5 // число строк
#define C 7  //число столбцов
 
using namespace std;
 
int main(){
    
    int matrix1[R][C], matrix2[R][C];
    int zero_column = -1; // номер столбца с первым нулем
    
    //Читаем первую матрицу
    for ( int i = 0; i < R; i++ )
        for ( int j = 0; j < C; j++ )
            cin >> matrix1[i][j];       
    
    
    //Читаем вторую матрицу
    for ( int i = 0; i < R; i++ )
        for ( int j = 0; j < C; j++ )
            cin >> matrix2[i][j];
    cout << endl << endl; 
    
    
    int matrix3[R][C]; //матрица с разницей, от второй отнимаем первую
    
    //находим каждый элемент, проверяем на нуль и сразу выводим на экран
    for ( int i = 0; i < R; i++ )
    {
        for ( int j = 0; j < C; j++ )
        {
            matrix3[i][j] = matrix2[i][j] - matrix1[i][j];
            if ( matrix3[i][j] == 0 && zero_column == -1 )
                zero_column = j;
            cout << matrix3[i][j] << " ";
        }
        cout << endl;
    }
    
    if ( zero_column == -1 )
        cout << "No zero elements was found" << endl;
    else
        cout << "Column with first zero element: " << zero_column << endl;
C++ (Qt)
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
cout « "Массив характеристик:" « endl;
for(int i = 0; i < C; ++i)
cout « setw(3) « R[i] « ' ';
cout « endl;
 
for (int i = 0; i < C - 1; ++i) 
{ 
for (int j = 0; j < C - i - 1; ++j) 
{ 
if (m[j] > C[j+1])
{
swap(m[j], C[j + 1]);
swap(v[j], v[j + 1]);
}
}
}
 
cout « "Массив по возрастанию характеристик:" « endl;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
cout « setw(3) « v[j][i] « ' ';
}
cout « endl;
}
 
            
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2015, 16:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перестановка строк матрицы по условию (C++):

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

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

Перестановка строк матрицы - C++
Дана матрица размером М:N,найти матрицу полученную из данной перестановкой строк 1ой строки с последней.2 ой с предпоследней и т.д.(матрица...

Перестановка строк матрицы - C++
Ребята помогите, если не сложно! Накипело задачку решить, а в С++ баран) Вот задание: Переставить строки матрицы в соответствии с...

Перестановка строк матрицы - C++
Прошу прощения если такая тема есть, поиск не помог мне её найти. Дана матрица MxN: Переставить строки матрицы по возрастанию...

Перестановка местами строк матрицы - C++
Задано двухмерный массив (матрицу) А размером n*m. Целые числа m и n (в ввиде констант) и елементы масива (действительные числа) задать...

5
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 438
17.05.2015, 17:09 #2
Мне проше написать по своему!Или вам соеденить обязательно?
0
xXRUSHXx
0 / 0 / 0
Регистрация: 02.05.2015
Сообщений: 22
17.05.2015, 17:24  [ТС] #3
Цитата Сообщение от Черный мечник Посмотреть сообщение
Мне проше написать по своему!Или вам соеденить обязательно?
Если можно, то и по своему
0
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 438
17.05.2015, 18:45 #4
тогда ок...Ша начну

Добавлено через 9 минут
найти разницу матриц, у вас от второй отнимается первая....
Ну я также сделал

Добавлено через 17 минут
Переставляя строки заданной матрицы....про какую матрицу идет реч из трех или вообше новую ответти и я допишу код?
0
xXRUSHXx
0 / 0 / 0
Регистрация: 02.05.2015
Сообщений: 22
17.05.2015, 19:33  [ТС] #5
Цитата Сообщение от Черный мечник Посмотреть сообщение
Переставляя строки заданной матрицы....про какую матрицу идет реч из трех или вообше новую ответти и я допишу код?
Новую сделать кажется!!!
0
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 438
17.05.2015, 21:18 #6
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include "iostream"
#include <ctime>  
#include <iomanip>
 
using namespace std;
 
int main()
{   
 setlocale(LC_ALL,"Rus");
 srand(time(0)); // генерация случайных чисел 
 const int N=5,M=7;
 int vibor;
 int matrix_One[N][M], matrix_Two[N][M],matrix_three[N][M];
 int zero_column = -1; // номер столбца с первым нулем
 
 cout<<"Введите 0, если хотите вручную заполнить ваши матрицы,\n"
       "или любую другую цифру если хотите авто заполнeние\n"
       "Выбор:";
 cin>>vibor;
  if(vibor!=0)
   {
    for (int i = 0; i < N; i++)     
     for (int j = 0; j < M; j++)             
         {
          matrix_One[i][j]=rand() % 100;
          matrix_Two[i][j]=rand() % 100;
         }
   }
  else
   {
       cout<<"\nЗаполняйте первую матрицу.\n";
     for (int i = 0; i < N; i++)     
      for (int j = 0; j < M; j++)
        { cout<<"элемент:["<<i<<"]["<<j<<"]=";
          cin>> matrix_One[i][j];
        }
       cout<<"\nЗаполняйте вторую матрицу.\n";
     for (int i = 0; i < N; i++)     
      for (int j = 0; j < M; j++)
        { cout<<"элемент:["<<i<<"]["<<j<<"]=";
          cin>>matrix_Two[i][j];
        }
   }
 cout<<"\nВаша  первая матрица.\n";
   for (int i = 0; i < N; i++)  {   
      for (int j = 0; j < M; j++)
          cout<<setw(3)<<matrix_One[i][j];
          cout<<endl;}
 cout<<"\nВаша вторая матрица.\n";
   for (int i = 0; i < N; i++)  {   
      for (int j = 0; j < M; j++)
          cout<<setw(3)<<matrix_Two[i][j];
      cout<<endl;}
 
  cout<<"\nВаша треть матрица(разность двух первых).\n";
 
    for ( int i = 0; i < N; i++ )
    {
        for ( int j = 0; j < M; j++ )
        {
matrix_three[i][j] = matrix_Two[i][j] - matrix_One[i][j];  //Тут можно поменять местами чтобы от первой отнималась вторая
            if ( matrix_One[i][j] == 0 && zero_column == -1 )
                zero_column = j;
            cout << setw(3)<<matrix_three[i][j];
        }
        cout << endl;
    }
  
    if ( zero_column == -1 )
        cout << "\nНуля нет не в одном стобце\n" << endl;
    else
        cout << "\nНомер столбца содержашего НОЛЬ: " << zero_column << endl<<endl;
  int sum1=0,sum2=0;   
  cout << "\nМатрица которую надо отсортировать по характеристики:\n";
  int matrix[N][M];         //матриц для Характеристик
   for (int i = 0; i < N; i++) {    
     for (int j = 0; j < M; j++)             
         {
          matrix[i][j]=rand() % 100;
          cout<<setw(3)<<matrix[i][j];
         }
       cout << endl;
    }
     //НАЧАЛО сортироки
   for (int i=0; i < N; i++) {                 
      sum1=0;sum2=0;
         for (int i=0; i < N-1; i++) 
          {
              for (int j=0; j < M; j++) 
                {   
                  if((matrix[i][j]%2)==0)
                      {
                        sum1=sum1+matrix[i][j];
                      }
                  if((matrix[i+1][j]%2)==0)
                       {
                           sum2=sum2+matrix[i+1][j];
                       }
    
                  if(j==M-1)
                    {
                        if(sum1>sum2)
                        {   
                            for ( int h = 0; h < M; h++ )
                            {
                              int temp=matrix[i][h];
                              matrix [i][h]=matrix[i+1][h];
                              matrix[i+1][h]=temp;
                            }
                       }
                    }
                 }    
              } 
   }
 cout<<"\n Отсортированная матрица.\n";
   for (int i = 0; i < N; i++)  {   
      for (int j = 0; j < M; j++)
          cout<<setw(3)<<matrix[i][j];
          cout<<endl;}
  // КОНЕЦ сортировки
 system("pause");
 return 0;
}
Добавлено через 3 минуты
xXRUSHXx, если не новую а какуето из сушествуюших то я закоментировал:
//НАЧАЛО сортироки
// КОНЕЦ сортировки
между ними matrix[i][j] замени на нужную и та отсортируется

Добавлено через 2 минуты
И кстате второй кусок кода что ты кидал вообше не очем он просто вырваный откудато...
Алгоритм сортировки самому придумывать пришлось
0
17.05.2015, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2015, 21:18
Привет! Вот еще темы с ответами:

Перестановка строк матрицы местами - C++
В общем, такая задача: дана целочисленная матрица размера m на n. Найти матрицу, получающуюся перестановкой строк (первой с последней и...

Перестановка местами строк и столбцов матрицы - C++
Помогите решить задачу: Дана матрица А(nxm).Получить матрицу, получающуюся из данной : перестановкой строк- первой с последней, второй с...

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

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


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

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

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