Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 22:54   #1
dlancer
 
Регистрация: 28.04.2011
Сообщений: 7
По умолчанию матрицы в С++

определить,является ли заданная квадратная матрица 10х10 симметричной относительно главной и побочной диагонали
dlancer вне форума Ответить с цитированием
Старый 05.05.2011, 01:04   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

И в чем проблема, собственно?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 05.05.2011, 15:50   #3
dlancer
 
Регистрация: 28.04.2011
Сообщений: 7
По умолчанию

не получается программа((((написал вроде правильно,а Qt ошибку выдает...вот и не могу понять в чем...
dlancer вне форума Ответить с цитированием
Старый 05.05.2011, 15:50   #4
dlancer
 
Регистрация: 28.04.2011
Сообщений: 7
По умолчанию

#include <iostream>

void input(double** matrix, int n, int m)
{
std::cout << "Enter matrix:" << std::endl;
int i, j;
for(i = 0; i < n; ++i)
for(j = 0; j < m; ++j)
std::cin >> matrix[i][j];
}

void output(double** matrix, int n, int m)
{
std::cout << "Matrix:" << std::endl;
int i, j;
for(i = 0; i < n; ++i, std::cout << std::endl)
for(j = 0; j < m; ++j)
std::cout << matrix[i][j] << ' ';
}

double** rotate(double** matrix, int n, int m)
{
int i, j;
double** temp = new double*[n];
for(i = 0; i < n; ++i)
temp[i] = new double[m];
for(i = 0; i < n; ++i)
for(j = 0; j < m; ++j)
temp[i][j] = matrix[i][m - j - 1];
return temp;
}

bool isSymmetric(double** matrix, int n, int m, bool needRotate)
{
int i, j;
double** matr = NULL;
if(needRotate)
matr = rotate(matrix, n , m);
else
matr = matrix;
for(i = 1; i < n; ++i)
for(j = 0; j < i; ++j)
if(matr[i][j] != matr[j][i])
{
if(needRotate)
{
for(i = 0; i < n; ++i)
delete matr[i];
delete [] matr;
}
return false;
}
if(needRotate)
{
for(i = 0; i < n; ++i)
delete matr[i];
delete [] matr;
}
return true;
}

int main()
{
int n, m, i;
std::cout << "Enter row count:\n> ",
std::cin >> n;
std::cout<<"Enter column count:\n> ",
std::cin >> m;
double** matrix = new double*[n];
for(i = 0; i < n; ++i)
matrix[i] = new double[m];

input(matrix, n, m);
output(matrix, n, m);

std::cout << "Main:\n< " << isSymmetric(matrix, n, m, false) << std::endl;
std::cout << "Incidental\n< " << isSymmetric(matrix, n, m, true) << std::endl;

system("PAUSE");
return EXIT_SUCCESS;
}
dlancer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TurboPascal: графы, матрицы смежности и матрицы инцидентности. ulala Помощь студентам 1 03.03.2011 19:28
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
Матрицы:функция изменения порядка столбцов матрицы Fajyz Помощь студентам 0 13.01.2010 09:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19