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

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

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

В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) - C++

26.12.2010, 18:22. Просмотров 887. Ответов 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
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include<stdlib.h>
#include<iomanip>
#include <time.h>
#include <conio.h>
#include <iostream>
#include<math.h>
 
using namespace std;
int main()
{
       int P,Q,i,j,N,M,mas[100][100],mass[100][100],h, t,I,J;
 
cout<<"razmer n";
cin>>N;
cout<<"razmer m";
cin>>M;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout << "elementu matricu" << " = ";
             cin >> mas[i][j];
         }
     }
     cout<<"\n";
 
 
     cout << "Matrica :" << endl;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout <<mas[i][j]<<" ";
         }
         cout << endl;
     }
     cout << endl;
     cout<<"Enter P: \n";
     cin>>P;
     cout<<"Enter Q: \n";
     cin>>Q;
     for(I=0,J=P;I<N;I++)
     {
     for(i=0,j=Q;i<M;i++)
      { t=mas[I][J];
        mas[I][J]=mas[i][j];
        mas[i][j]=t;
 
 
     }
 
     return 0;
}
Проблема в том, что не знаю как столбцы поменять(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 18:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) (C++):

В заданной матрице А (N , М) поменять местами столбцы с номерами P и Q - C++
В заданной матрице А (N , М) поменять местами столбцы с номерами P и Q( Помогите с обиснениями кто может , что к чему и как , как что...

В матрице поменять местами столбцы с заданными номерами - C++
В заданной матрице А (N , М) поменять местами столбцы с номерами P и Q

Поменять местами столбцы матрицы с номерами K1 и K2 - C++
Дана матрица размера M × N и целые числа K1 и K2 (1 ≤ K1 &lt; K2 ≤ N). Поменять местами столбцы матрицы с номерами K1 и K2.

Поменять местами в матрице i-й и j-й столбцы - C++
Даны натуральные числа i, j, вещественная матрица размера M x N. Поменять местами в матрице i-й и j-й столбцы.

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

Поменять местами столбцы в матрице - C++
Код: #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; using namespace std; ...

8
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 19:59 #2
C++
1
2
3
4
5
6
for(I=0,J=P;I<N;I++)
         {
         for(i=0,j=Q;i<M;i++)
          { t=mas[I][J];
                mas[I][J]=mas[i][j];
            mas[i][j]=t;
вот этот кусок вообще невкурю. что к чему??

Добавлено через 22 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cout<<"vvedi nomera ctolcov: ";
    cin>>k>>b;
    if(k>0&&k<n||b>0&&b<n){
    for(i=0; i<n; i++){
       for(j=0; j<n; j++){
    x=a[i][k];
      a[i][k]=a[i][b];
      a[i][b]=x;
       }
    }
    }else cout<<"vi vveli nedopustimoe znachenie nomerov stolbcov, martix ne bila izmenena"<<endl;
    cout<<endl<<endl;
    for(i=0; i<n; i++){
       for(j=0; j<n; j++){
       cout<<setw(3)<<a[i][j];
       }
       cout<<endl;}
как вариант для вас подойдет
0
Bleize
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 26
26.12.2010, 20:27  [ТС] #3
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
#include "stdafx.h"
#include<stdlib.h>
#include<iomanip>
#include <time.h>
#include <conio.h>
#include <iostream>
#include<math.h>
 
using namespace std;
int main()
{
       int P,Q,i,j,N,M,mas[100][100],mass[100][100],masss[100][100],h, t,I,J,u,w,x;
 
cout<<"razmer n";
cin>>N;
cout<<"razmer m";
cin>>M;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout << "elementu matricu" << " = ";
             cin >> mas[i][j];
         }
     }
     cout<<"\n";
 
 
     cout << "Matrica :" << endl;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout <<mas[i][j]<<" ";
         }
         cout << endl;
     }
     cout << endl;
     cout<<"Enter P: \n";
     cin>>P;
     cout<<"Enter Q: \n";
     cin>>Q;cout<<endl;
     for(I=0,J=P,u=0;I<N;I++)
     {
     mass[u][0]=mas[I][J];
     cout<<mass[u][0]<<endl;
     u++;
     }cout<<endl;
     for(i=0,j=Q,w=0;i<N;i++)
     {mass[0][w]=mas[i][j];
     cout<<mass[0][w]<<endl;
     w++;
     }
     for(i=0; i<N; i++){
           for(j=0; j<N; j++){
    x=mas[i][P];
      mas[i][P]=mas[i][Q];
      mas[i][Q]=x;
           }
    }
     for(i=0; i<N; i++){
           for(j=0; j<N; j++){
       cout<<setw(3)<<mas[i][j];
           }
       cout<<endl;}
     return 0;
}
соединил, работает никак, как и предполагал
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
26.12.2010, 20:45 #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>
 
template <typename T>
void swap(T & a, T & b){
    T c(a);
    a = b;
    b = c;
}
 
int main(){
    const int ROWS(3), COLUMNS(4), FIRST2CHANGE(1), SECOND2CHANGE(2);
    int matrix[ROWS][COLUMNS] = {
        { 1, 2, 3, 4 },
        { 1, 2, 3, 4 },
        { 1, 2, 3, 4 }
    };
    
    std::cout << "Before:" << std::endl;
    for ( int i = 0; i < ROWS; ++i )
        for ( int j = 0; j < COLUMNS; ++j )
            std::cout << matrix[i][j] << ( j < COLUMNS - 1 ? ' ' : '\n' );
    
    for ( int i = 0; i < ROWS; ++i )
        swap(matrix[i][FIRST2CHANGE], matrix[i][SECOND2CHANGE]);
    
    std::cout << "After:" << std::endl;
    for ( int i = 0; i < ROWS; ++i )
        for ( int j = 0; j < COLUMNS; ++j )
            std::cout << matrix[i][j] << ( j < COLUMNS - 1 ? ' ' : '\n' );
    
    return 0;
}
0
Bleize
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 26
26.12.2010, 20:57  [ТС] #5
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
#include "stdafx.h"
#include<stdlib.h>
#include<iomanip>
#include <time.h>
#include <conio.h>
#include <iostream>
#include<math.h>
 
using namespace std;
int main()
{
       int P,Q,i,j,N,M,mas[100][100],mass[100][100],masss[100][100],h, t,I,J,u,w;
 
cout<<"razmer n";
cin>>N;
cout<<"razmer m";
cin>>M;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout << "elementu matricu" << " = ";
             cin >> mas[i][j];
         }
     }
     cout<<"\n";
 
 
     cout << "Matrica :" << endl;
     for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout <<mas[i][j]<<" ";
         }
         cout << endl;
     }
     cout << endl;
     cout<<"Enter P: \n";
     cin>>P;
     cout<<"Enter Q: \n";
     cin>>Q;cout<<endl;
     for(I=0,J=P,u=0;I<N;I++)
     {
     mass[u][0]=mas[I][J];
     cout<<mass[u][0]<<endl;
     u++;
     }cout<<endl;
     for(i=0,j=Q,w=0;i<N;i++)
     {mass[0][w]=mas[i][j];
     cout<<mass[0][w]<<endl;
     w++;
     }cout<<endl;
      for(i=0;i<N;i++){
  t=mas[i][Q];
  mas[i][Q]=mas[i][P];
  mas[i][P]=t;
 }
      for (i=0;i<N;i++)
     {
         for (j=0;j<M;j++)
         {
             cout <<mas[i][j]<<" ";
         }
         cout << endl;
     }
 
     return 0;
}
я думаю именно этот конечный код будет самым корректным, всем спасибо за отклик
0
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 21:04 #6
Bleize, вариант где вы копипаст сделали с моего куска себе без обдумывания самый "крутой"!!!
и еще осторожнее будьте с переменными, вы путаетесь в них....
0
easybudda
26.12.2010, 21:05
  #7

Не по теме:

Цитата Сообщение от Bleize Посмотреть сообщение
int P,Q,i,j,N,M,mas[100][100],mass[100][100],masss[100][100],h, t,I,J,u,w;
Будь я преподом - дальше и смотреть бы не стал, сразу незачёт...

1
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 21:07 #8
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


Будь я преподом - дальше и смотреть бы не стал, сразу незачёт...

я о том же)))путаница сплошная
0
silent_1991
26.12.2010, 21:45     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++)
  #9

Не по теме:

easybudda, я даже когда самые свои большие программы писал (правда серьёзных проектов не было, но у меня в вузе, в отличие от некоторых обитателей этого форума, курсачи тоже здоровые получаются ), столько переменных в пределах одной функции не использовал

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 21:45
Привет! Вот еще темы с ответами:

Как в матрице менять столбцы местами? - C++
Добрый день. Есть такая задача. Дана матрица действительных чисел размера m x n. Переформировать матрицу таким образом, чтобы ее...

Как в матрице поменять местами столбцы? - C++
int main() {randomize(); int N,M; cout&lt;&lt;&quot;Vvedit rozmirnist matrici NxM:\n&quot;; cin&gt;&gt;N; cin&gt;&gt;M; cout&lt;&lt;&quot;Matricu sformovano\n&quot;; ...

Переставить местами строки с четными и нечетными номерами в матрице - C++
В общем суть такова, надо ввести 2 матрицы 4*4,и найти кол-во элементов больших 2.5( NA и NB соответственно). За тем переставить местами...

В данной действительной матрице m*n (n>=3,m>=3) поменять местами строки с номерами 2 и n-1 - C++
В данной действительной матрице m*n (n&gt;=3,m&gt;=3) поменять местами строки с номерами 2 и n-1


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

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

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