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

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

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

Студворк — интернет-сервис помощи студентам
парни, выручите!
В матрице Х(n,n) поменять местами элементы на главной и побочной
диагоналях.
С++ Visual, win 32 console application
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2009, 21:39
Ответы с готовыми решениями:

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

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

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

18
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
25.12.2009, 22:05
Если матрица 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  [ТС]
А МОЖНО ОБЪЯСНИТЬ КАК ВВЕСТИ МАТРИЦУ, Т.Е. ЧТО ДОЛЖЕН НАПИСАТЬ В cout<< и cin>>...и так же вывод. Только учусь, плиз))
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 13:25
Вариант:
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  [ТС]
что то совсем запутался...можете написать просто как ввести матрицу (cin>> ? >>)
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 14:03
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  [ТС]
благодарю...вопрос, если матрица квадратная[i][i] то вместо j я так понимаю вводить тоже i?
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 14:14
Нет, в последнем коде j нужна. А в первом коде все i тоже остаются без изменений. Т.е. если будете склеивать оба кода, то нужно учесть только:

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

Добавлено через 3 часа 40 минут
находит ошибку в строке #include <iostream.h>
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:05
Цитата Сообщение от 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  [ТС]
так я так писал, всё равно косяк
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:18
Забыл. Самая первая строчка такая:
C++
1
#include "stdafx.h"
а потом все остальное
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:25  [ТС]
ничего не выходит, пробовал...
можно попросить тебя просто дописать первый вариант

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
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:43
Вот этот код должен у Вас работать, я сам потому что на таком же компиляторе работаю:
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  [ТС]
1>f:\: fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
это ошибка.
если из #include <iostream.h> делаю #include <iostream> получается 17 ошибок
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 18:54
С++ Visual, версия какая?
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:56  [ТС]
visual c++ 2008 express edition
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
27.12.2009, 19:04
Понятно, есть и такая версия, вот под нее:
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  [ТС]
теперь всё работает красиво))) спасибо)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2009, 20:18
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru