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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.97
Rom1ch
0 / 0 / 0
Регистрация: 04.07.2011
Сообщений: 12
#1

Побочная диагональ матрицы - C++

04.07.2011, 15:51. Просмотров 6050. Ответов 20
Метки нет (Все метки)

Подскажите, как в динамической квадратной матрице поменять элементы главной и побочной диагонали между собой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2011, 15:51     Побочная диагональ матрицы
Посмотрите здесь:

Матрица (побочная диагональ) - C++
Создать матрицу, все элементы, которые ниже побочной диагонали сложить и этим числом заменить максимальный элемент матрицы

Двумерный массив. Матричные вычисления. Побочная диагональ - C++
Дан массив действительных чисел размером nхn(n<10). Найти наименьшее из значений элементов побочной диагонали и двух соседних с ней...

Главная диагональ, побочная и наименьшее из значений элементов побочной диагонали - C++
Дан массив действительных чисел размера nxn (n<=10) а) Найти сумму элементов главной и побочной диагоналей. б) Найти наименьшее из...

Найти сумму элементов матрицы и заменить ею главную диагональ матрицы - C++
Вот что я написал: // ConsoleApplication17.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" ...

Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную диагональ матрицы, если в ней найдется хоть один отриц - C++
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную диагональ матрицы, если в ней найдется хоть...

Главная диагональ матрицы - C++
Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" (т.е. сумму элементов главной диагонали). Использовать...

Диагональ двумерной матрицы - C++
Привет всем! На сегодняшний день уже второй раз обращаюсь и мне очень неловко. Но и иначе никак. Задача: Дана матрица С. Вычислить и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
04.07.2011, 15:55     Побочная диагональ матрицы #2
C++
1
2
for(size_t i = 0; i < N; ++i)
  std::swap(matr[i][i], matr[n - i - 1][n - i - 1]);
Rom1ch
0 / 0 / 0
Регистрация: 04.07.2011
Сообщений: 12
04.07.2011, 20:59  [ТС]     Побочная диагональ матрицы #3
делаю так:
for(size_t i = 0; i < n; ++i)
std::swap(matr[i][i], matr[n - i - 1][n - i - 1]);
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d ",matr[i][j]); cout<<endl;}

Чёто не меняет, выводит ту же исходную матрицу,
вообще мы в универе такой записью (std::swap) не пользовались , т.е. надо как-то через циклы решить без использования (std::swap)
C++ знаю полгода, поэтому туплю...
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,738
04.07.2011, 21:19     Побочная диагональ матрицы #4
Цитата Сообщение от asics Посмотреть сообщение
std::swap(matr[i][i], matr[n - i - 1][n - i - 1]);
из одной и тойже диагонали значения
может так
C++
1
std::swap(matr[i][i], matr[n - i - 1][ i ]);
Добавлено через 53 секунды
Цитата Сообщение от Rom1ch Посмотреть сообщение
т.е. надо как-то через циклы решить
через цикл и решено

Добавлено через 1 минуту
Цитата Сообщение от Rom1ch Посмотреть сообщение
без использования (std::swap)
если матрица из типов int
То пиши
C++
1
matr[i][i]= matr[n - i - 1][i];
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
04.07.2011, 21:21     Побочная диагональ матрицы #5
Цитата Сообщение от ValeryS Посмотреть сообщение
из одной и тойже диагонали значения
Что-то я сомневаюсь в этом.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,738
04.07.2011, 21:28     Побочная диагональ матрицы #6
Цитата Сообщение от asics Посмотреть сообщение
Что-то я сомневаюсь в этом.
допустим
n=10
i=0
то
std::swap(matr[0][0], matr[9][9]);
главная диагональ
а при моей записи
std::swap(matr[0][0], matr[9][0]);
столбец один строки разные
т.е разные диагонали
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
04.07.2011, 21:35     Побочная диагональ матрицы #7
Да да, пардон, туплю.
Rom1ch
0 / 0 / 0
Регистрация: 04.07.2011
Сообщений: 12
04.07.2011, 21:45  [ТС]     Побочная диагональ матрицы #8
Всё, спасибо, я сделал) Через вспомогательный двумерный массив.

Вот конец проги:
for(i = 0; i < n; i++)
for(j=0;j<n;j++)
if (i==j) {zammatr[i][j]=matr[i][i]; matr[i][i]=matr[i][n-i-1]; matr[i][n-i-1]=zammatr[i][j];}

for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%10d ",matr[i][j]); cout<<endl;}
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
04.07.2011, 21:48     Побочная диагональ матрицы #9
Rom1ch, зачем через массив, еще и 2х-мерный? Просто переменную, если уж на то пошло.
neske
04.07.2011, 21:49
  #10

Не по теме:

жеесть)

Rom1ch
0 / 0 / 0
Регистрация: 04.07.2011
Сообщений: 12
04.07.2011, 21:57  [ТС]     Побочная диагональ матрицы #11
Хах, да, можно и через переменную, сам усложняю себе жизнь))
А если не через переменную, то как выглядит текст проги?
nameless
Эксперт C++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
04.07.2011, 22:01     Побочная диагональ матрицы #12
Цитата Сообщение от Rom1ch Посмотреть сообщение
А если не через переменную, то как выглядит текст проги?
В смысле, не через переменную? А через что?
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
04.07.2011, 22:02     Побочная диагональ матрицы #13
nameless,
C++
1
2
3
a = a + b;
b = a - b;
a = a - b;
nameless
Эксперт C++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
04.07.2011, 22:06     Побочная диагональ матрицы #14
neske, В этом смысле. А то посмотрев реализацию через доп. матрицу, подумал, что автор придумал, еще более извращенные вещи..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2011, 22:28     Побочная диагональ матрицы
Еще ссылки по теме:

Главная диагональ матрицы - C++
Добрый вечер! Есть пару задач, с которыми не могу справиться, помогите плиз... Задача 1 Постановка задачи: Дана целочисленная...

Диагональ матрицы с минимальным элементом - C++
Всем добрый день. Задача такова: надо найти в квадратной матрице диагональ с минимальным элементом, заменить элементы этой диагонали...

Главная диагональ и транспонирование матрицы - C++
Дана целочисленная матрица размерности (n x n) . Если максимальные элементы строк находятся на главной диагонали и образуют не...

Вывести на экран диагональ матрицы - C++
Здравствуйте, как вывести на экран диагональ матрица?

Заменить главную диагональ матрицы - C++
Нужна помощь. Не могу заменить главную диагональ матрицы минимальным элементом, напишите пожалуйста. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Rom1ch
0 / 0 / 0
Регистрация: 04.07.2011
Сообщений: 12
04.07.2011, 22:28  [ТС]     Побочная диагональ матрицы #15
a = a + b;
b = a - b;
a = a - b;
классный код, но где он используется и зачем? Ведь проще и нагляднее так:
x=a;
a=b;
b=x;
Yandex
Объявления
04.07.2011, 22:28     Побочная диагональ матрицы
Ответ Создать тему
Опции темы

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