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

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

Восстановить пароль Регистрация
 
Bleize
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 26
26.12.2010, 18:22     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #1
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;
}
Проблема в том, что не знаю как столбцы поменять(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 18:22     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++)
Посмотрите здесь:

Поменять местами столбцы матрицы с номерами K1 и K2 C++
C++ В матрице поменять местами столбцы с заданными номерами
C++ В заданной матрице А (N , М) поменять местами столбцы с номерами P и Q
В данной действительной матрице m*n (n>=3, m>=3), поменять местами строки с номерами 2 и n-1 C++
В данной действительной матрице m*n (n>=3,m>=3) поменять местами строки с номерами 2 и n-1 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 19:59     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #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;}
как вариант для вас подойдет
Bleize
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 26
26.12.2010, 20:27  [ТС]     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #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;
}
соединил, работает никак, как и предполагал
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.12.2010, 20:45     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #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;
}
Bleize
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 26
26.12.2010, 20:57  [ТС]     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #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;
}
я думаю именно этот конечный код будет самым корректным, всем спасибо за отклик
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 21:04     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #6
Bleize, вариант где вы копипаст сделали с моего куска себе без обдумывания самый "крутой"!!!
и еще осторожнее будьте с переменными, вы путаетесь в них....
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;
Будь я преподом - дальше и смотреть бы не стал, сразу незачёт...

eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
26.12.2010, 21:07     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) #8
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


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

я о том же)))путаница сплошная
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 21:45     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++)
Еще ссылки по теме:

C++ 1) В матрице A поменять местами две строки с заданными номерами
Поменять местами столбцы в матрице C++
Поменять местами столбцы в матрице C++

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

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

Не по теме:

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

Yandex
Объявления
26.12.2010, 21:45     В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++)
Ответ Создать тему
Опции темы

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