Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
1

В матрице Х(n,n) поменять местами элементы на главной и побочной

25.12.2009, 21:39. Показов 5450. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
парни, выручите!
В матрице Х(n,n) поменять местами элементы на главной и побочной
диагоналях.
С++ Visual, win 32 console application
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2009, 21:39
Ответы с готовыми решениями:

В заданной квадратной матрице поменять местами элементы, стоящие на главной и побочной диагонали
Добрый день ! Помогите пожалуйста с задачей,очень нужно! (С++) Дана матрицы А(3,3). В матрице...

Поменять местами элементы главной и побочной диагонали
Помогите поменять местами элементы главной и побочной диагонали, через двумерный массив.

Поменять местами элементы главной и побочной диагонали
Помогите поменять местами элементы главной и побочной диагонали, через двумерный массив.

Поменять местами элементы главной и побочной диагонали матрицы и найти столбцы, элементы которых убывают
С++ Задана матрица A(n,n). Поменять местами элементы главной и побочной диагонали. В...

18
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
25.12.2009, 22:05 2
Если матрица X есть, то так:
C++
1
2
3
4
5
6
7
int temp;
for(int i=0; i<n; i++)
{
    temp=X[i][i];
    X[i][i]=X[n-1-i][i];]
    X[n-1-i][i]=temp;
}
1
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 13:14  [ТС] 3
А МОЖНО ОБЪЯСНИТЬ КАК ВВЕСТИ МАТРИЦУ, Т.Е. ЧТО ДОЛЖЕН НАПИСАТЬ В cout<< и cin>>...и так же вывод. Только учусь, плиз))
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 13:25 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
#include <iostream.h>
#include <windows.h>
 
int main ()
{   int **mas, n, i,j;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå êîëè÷åñòâî ñòðîê è ñòîëáöîâ ìàòðèöû: "<< endl;
    cin>>n;
    mas=new int*[n];
 
    for(i=0; i<n; i++)
       mas[i]=new int[n];
    cout<<"Ââåäèòå ýëåìåíòû ìàòðèöû: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
       {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>mas[i][j];
       }
        cout<<"èñõîäíàÿ ìàòðèöà"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
    return 0;
}
Если будете использовать эти два эпизода, то учтите, в первом варианте имя массива отличается от имени массива во втором варианте
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 13:36  [ТС] 5
что то совсем запутался...можете написать просто как ввести матрицу (cin>> ? >>)
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 14:03 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
#include <iostream.h>
#include <windows.h>
 
int main ()
{       int **mas, n, i,j;
    SetConsoleCP(1251);// это для отображения на экране русских символов (Например когда выведено сообщение на экран "Введите количество строк и столбцов матрицы:")
    SetConsoleOutputCP(1251);// это тоже
    cout<<"Введите количество строк и столбцов матрицы: "<< endl; // выводит на экран сообщение "Введите количество строк и столбцов матрицы: "
    cin>>n;// в переменную n вводится значение пользователем
    mas=new int*[n];// в этой строке и двух последующих создается двумерный массив размерность n (n строк и n столбцов)
    for(i=0; i<n; i++)
       mas[i]=new int[n];
    cout<<"Введите элементы матрицы: "<< endl;// это сообщение выводится на экран
    for(i=0; i<n; i++)// i изменяется от 0 до n-1
       for(j=0; j<n; j++)// j изменяется от 0 до n-1
       {
          cout<<"["<<i<<"]["<<j<<"]= "; // на экран выводится например так: [2][3]= 
          cin>>mas[i][j];// введеное пользователем значение присваивается элементу массива
       }
        cout<<"исходная матрица"<<endl;// это сообщение вводится на экран
    for(i=0; i<n; i++)// i изменяется от 0 до n-1
        {
       for(j=0; j<n; j++)// j изменяется от 0 до n-1
          cout<<mas[i][j]<<" ";// на экран выводится значение очередного элемента массива и после него пробел
          cout<<endl;// переход на другую строку
        }
        return 0;
}
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 14:09  [ТС] 7
благодарю...вопрос, если матрица квадратная[i][i] то вместо j я так понимаю вводить тоже i?
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 14:14 8
Нет, в последнем коде j нужна. А в первом коде все i тоже остаются без изменений. Т.е. если будете склеивать оба кода, то нужно учесть только:

Цитата Сообщение от valeriikozlov Посмотреть сообщение
Если будете использовать эти два эпизода, то учтите, в первом варианте имя массива отличается от имени массива во втором варианте
И все!
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 17:55  [ТС] 9
спасибо, сейчас попробую

Добавлено через 3 часа 40 минут
находит ошибку в строке #include <iostream.h>
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:05 10
Цитата Сообщение от Oleg V Посмотреть сообщение
находит ошибку в строке #include <iostream.h>
Сделайте так:
C++
1
2
3
4
5
6
#include <iostream>
#include <windows.h>
 using namespace std;
int main ()
{       int **mas, n, i,j;
.....
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:07  [ТС] 11
так я так писал, всё равно косяк
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:18 12
Забыл. Самая первая строчка такая:
C++
1
#include "stdafx.h"
а потом все остальное
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:25  [ТС] 13
ничего не выходит, пробовал...
можно попросить тебя просто дописать первый вариант

C
1
2
3
4
5
6
7
int temp;
for(int i=0; i<n; i++)
{
        temp=X[i][i];
        X[i][i]=X[n-1-i][i];]
        X[n-1-i][i]=temp;
}
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:43 14
Вот этот код должен у Вас работать, я сам потому что на таком же компиляторе работаю:
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
#include "stdafx.h"
#include <iostream.h>
#include <windows.h>
 
int main ()
{       int **mas, n, i,j;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите количество строк и столбцов матрицы: "<< endl;
    cin>>n;
    mas=new int*[n];
 
    for(i=0; i<n; i++)
       mas[i]=new int[n];
    cout<<"Введите элементы матрицы: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
       {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>mas[i][j];
       }
        cout<<"исходная матрица"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
    int temp;
for( i=0; i<n; i++)
{
        temp=mas[i][i];
        mas[i][i]=mas[n-1-i][i];
        mas[n-1-i][i]=temp;
}
        cout<<"полученная матрица"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
        return 0;
}
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:51  [ТС] 15
1>f:\: fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
это ошибка.
если из #include <iostream.h> делаю #include <iostream> получается 17 ошибок
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:54 16
С++ Visual, версия какая?
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:56  [ТС] 17
visual c++ 2008 express edition
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 19:04 18
Понятно, есть и такая версия, вот под нее:
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 "stdafx.h"
#include <iostream>
#include <windows.h>
  using namespace std;
int main ()
{       int **mas, n, i,j;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите количество строк и столбцов матрицы: "<< endl;
    cin>>n;
    mas=new int*[n];
 
    for(i=0; i<n; i++)
       mas[i]=new int[n];
    cout<<"Введите элементы матрицы: "<< endl;
    for(i=0; i<n; i++)
       for(j=0; j<n; j++)
       {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>mas[i][j];
       }
        cout<<"исходная матрица"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
        int temp;
for( i=0; i<n; i++)
{
        temp=mas[i][i];
        mas[i][i]=mas[n-1-i][i];
        mas[n-1-i][i]=temp;
}
        cout<<"полученная матрица"<<endl;
    for(i=0; i<n; i++)
        {
       for(j=0; j<n; j++)
          cout<<mas[i][j]<<" ";
          cout<<endl;
        }
    system("pause");
        return 0;
}
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 20:18  [ТС] 19
теперь всё работает красиво))) спасибо)))
0
27.12.2009, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2009, 20:18
Помогаю со студенческими работами здесь

Поменять местами элементы главной и побочной диагоналей матрицы
помогите пожайлуста. Поменять местами элементы главной и побочной диагоналей матрицы. делал...

Поменять местами элементы главной и побочной диагонали массива
Поменять местами элементы главной и побочной диагонали массива размерностью 5х5

Поменять местами максимальный и минимальный элементы главной и побочной диагоналей
Здрасте. Кто может, черканите код, который ищет максимальный и минимальный элементы главной и...

Найти максимальные элементы главной и побочной диагоналей матрицы и поменять их местами
Дана матрица nxn. Найти максимальные элементы главной и побочной диагоналей матрицы и поменять их...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru