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

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

Войти
Регистрация
Восстановить пароль
 
 
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
#1

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

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

парни, выручите!
В матрице Х(n,n) поменять местами элементы на главной и побочной
диагоналях.
С++ Visual, win 32 console application
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2009, 21:39     В матрице Х(n,n) поменять местами элементы на главной и побочной
Посмотрите здесь:
В заданной квадратной матрице поменять местами элементы, стоящие на главной и побочной диагонали C++
C++ Поменять местами элементы главной и побочной диагонали
C++ Поменять местами элементы главной и побочной диагонали
C++ Поменять местами элементы главной и побочной диагонали матрицы и найти столбцы, элементы которых убывают
C++ Поменять местами элементы главной и побочной диагоналей матрицы
C++ Поменять местами элементы главной и побочной диагонали массива
C++ Найти максимальные элементы главной и побочной диагоналей матрицы и поменять их местами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.12.2009, 22:05     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
}
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 13:14  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #3
А МОЖНО ОБЪЯСНИТЬ КАК ВВЕСТИ МАТРИЦУ, Т.Е. ЧТО ДОЛЖЕН НАПИСАТЬ В cout<< и cin>>...и так же вывод. Только учусь, плиз))
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 13:25     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
}
Если будете использовать эти два эпизода, то учтите, в первом варианте имя массива отличается от имени массива во втором варианте
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 13:36  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #5
что то совсем запутался...можете написать просто как ввести матрицу (cin>> ? >>)
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 14:03     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
}
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 14:09  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #7
благодарю...вопрос, если матрица квадратная[i][i] то вместо j я так понимаю вводить тоже i?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 14:14     В матрице Х(n,n) поменять местами элементы на главной и побочной #8
Нет, в последнем коде j нужна. А в первом коде все i тоже остаются без изменений. Т.е. если будете склеивать оба кода, то нужно учесть только:

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

Добавлено через 3 часа 40 минут
находит ошибку в строке #include <iostream.h>
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 18:05     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
.....
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:07  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #11
так я так писал, всё равно косяк
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 18:18     В матрице Х(n,n) поменять местами элементы на главной и побочной #12
Забыл. Самая первая строчка такая:
C++
1
#include "stdafx.h"
а потом все остальное
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:25  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
}
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 18:43     В матрице Х(n,n) поменять местами элементы на главной и побочной #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2009, 18:51     В матрице Х(n,n) поменять местами элементы на главной и побочной
Еще ссылки по теме:
Поменять местами элементы главной и побочной диагоналей, симметричные относительно центра матрицы C++
Поменять местами минимальный элемент главной диагонали и максимальный элемент побочной диагонали в матрице C++
Поменять местами максимальный элемент главной диагонали и элемент, лежащий на пересечении главной и побочной диагоналей C++
Переставить в матрице элементы главной и побочной диагоналей C++

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

Или воспользуйтесь поиском по форуму:
Oleg V
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 13
27.12.2009, 18:51  [ТС]     В матрице Х(n,n) поменять местами элементы на главной и побочной #15
1>f:\: fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
это ошибка.
если из #include <iostream.h> делаю #include <iostream> получается 17 ошибок
Yandex
Объявления
27.12.2009, 18:51     В матрице Х(n,n) поменять местами элементы на главной и побочной
Ответ Создать тему
Опции темы

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