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

Поменять местами угловые элементы матрицы - C++

Восстановить пароль Регистрация
 
VladosLancer
1 / 1 / 0
Регистрация: 03.10.2011
Сообщений: 96
01.10.2012, 13:27     Поменять местами угловые элементы матрицы #1
Здравствуйте. Помогите, пожалуйста, написать программу: Дана матрица размерностью n. Поменять в ней местами нижнее левое число с верхним правым числом, т. е. к примеру, если дана матрица:
1 2 3
5 6 9
12 4 78, то надо поменять местами числа 12 и 3, т. е. получится матрица:
1 2 12
5 6 9
3 4 78
Размерность и матрицу нужно вводить с клавиатуры. Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
01.10.2012, 13:29     Поменять местами угловые элементы матрицы #2
std::swap(matrix[0][M-1], matrix[N-1, 0]);
VladosLancer
1 / 1 / 0
Регистрация: 03.10.2011
Сообщений: 96
01.10.2012, 13:35  [ТС]     Поменять местами угловые элементы матрицы #3
А можно полный код программы?
user_p01
19 / 19 / 2
Регистрация: 03.11.2011
Сообщений: 80
01.10.2012, 14:40     Поменять местами угловые элементы матрицы #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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
    srand(time(NULL));
    const int n=5; 
    int a[n][n], i, j , help;
    for(i=0; i<n; i++)
    {
       for(j=0; j<n; j++)
       {
          a[i][j]=rand()%20+1;
          cout << a[i][j] << "\t";
       }
    cout << endl;
    }
    cout << endl;
    help=a[n-1][0];
    a[n-1][0]=a[0][n-1];
    a[0][n-1]=help;
    for(i=0; i<n; i++)
    {
       for(j=0; j<n; j++)
          cout << a[i][j] << "\t";
       cout << endl;
    }
    system("pause");
    return 0;
}
Добавлено через 10 минут
Если вводить с клавиатуры, то так:
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>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int a[50][50], i, j, n, help;
    cout << "Введите размерность:\n";
    cin >> n;
    cout << "Введите матрицу:\n";
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
          cin >> a[i][j];
    cout << endl;
    for(i=0; i<n; i++)
    {
       for(j=0; j<n; j++)
          cout << a[i][j] << "\t";
     cout << endl;
    }
    cout << endl;
    help=a[n-1][0];
    a[n-1][0]=a[0][n-1];
    a[0][n-1]=help;
    for(i=0; i<n; i++)
    {
       for(j=0; j<n; j++)
          cout << a[i][j] << "\t";
       cout << endl;
    }
    system("pause");
    return 0;
}
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
01.10.2012, 14:44     Поменять местами угловые элементы матрицы #5
Вариант со swap
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
#include <iostream>
#include <algorithm>
#include <iomanip> 
 
int main() 
{   
    unsigned int i, j;
    unsigned int n; 
    int** matrix;
    std::cout << "Inter n " << std::endl; 
    std::cin >> n; 
 
    matrix = new int*[n];  
    for ( i = 0; i < n; i++) 
        matrix[i] = new int[n]; 
 
    for ( i = 0; i < n; i++) 
        for ( j = 0; j < n; j++) 
        { 
            std::cout << "Inter element " << "[" << i << "][" << j << "]" << std::endl; 
            std::cin >> matrix[i][j];  
        } 
 
        std::cout << "Primary matrix " << std::endl; 
        for ( i = 0; i < n; i++) 
            for ( j = 0; j < n; j++) 
            { 
                if( j % n == 0) 
                    std::cout << std::endl; 
                std::cout << std::setw(3) << matrix[i][j]; 
            } 
            std::cout << std::endl << std::endl;
 
            std::swap(matrix[0][n-1], matrix[n-1][0]); 
 
            std::cout << "Change matrix " << std::endl; 
            for ( i = 0; i < n; i++) 
            for ( j = 0; j < n; j++) 
            { 
                if( j % n == 0) 
                    std::cout << std::endl; 
                std::cout << std::setw(3) << matrix[i][j]; 
            }   
            std::cout << std::endl;
}
Yandex
Объявления
01.10.2012, 14:44     Поменять местами угловые элементы матрицы
Ответ Создать тему
Опции темы

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