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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Kill100
405 / 271 / 37
Регистрация: 11.12.2010
Сообщений: 1,156
Завершенные тесты: 1
#1

Проверить что в квадратной матрице все нули кроме главной диагонали - C++

18.02.2011, 21:03. Просмотров 1115. Ответов 4
Метки нет (Все метки)

Как проверить что в квадратной матрице все нули кроме главной диагонали...


и помогите найти ошибку
По определению если (P1 по правилу матрици умножить на P1)и умножить по элемнтно на P1
будет равно P1 по правилу матрици умножить на P1 то транзитивно.
Однако прога всегда пишет что не транзитивно...
вот функция
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
//Проверка транзитивности матриц БО
int matr_tranzit(int **Px){
 
 int **a=new int*[n];
     for (int i=0; i<n;i++){
      a[i]=new int [n];};
      
      
       for (int i=0;i<n;i++){
      for (int j=0;j<n;j++){
     a[i][j]=0
     ;};}
      
      
      
  int **b=new int*[n];
     for (int i=0; i<n;i++){
      b[i]=new int [n];};     
 
for (int i=0;i<n;i++){
      for (int j=0;j<n;j++){
        for (int k=0;k<n;k++)
        {a[i][j]+=(Px[i][k]*Px[k][j]);}
          
        ;};}
        
    
        
    for(int i=0; i<n; i++)
         for(int j=0; j<n; j++){
b[i][j]=Px[i][j]*a[i][j];
};
cout<<"(P1.P1)*P1 \n";
print(b); 
int t=0;
if(a==b){t=0;}else{t=1;};
 
return t;   
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 21:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить что в квадратной матрице все нули кроме главной диагонали (C++):

В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали - C++
В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали и вывести результаты. что не так? #include...

В квадратной матрице найти сумму элементов ниже главной диагонали - C++
В квадратной матрице найти сумму элементов ниже главной диагонали Надо программу на си++

В квадратной матрице найти сумму минимального и максимального элементов главной диагонали - C++
В квадратной матрице найти сумму минимального и максимального элементов главной диагонали. Добавлено через 3 часа 13 минут Помогите...

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

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

Обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали - C++
Как обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали. Условный оператор не использовать Каков...

4
Топорик
7 / 7 / 1
Регистрация: 15.02.2011
Сообщений: 19
18.02.2011, 22:00 #2
Мне кажется, что проще решить эту задачу простым перебором
0
Kill100
405 / 271 / 37
Регистрация: 11.12.2010
Сообщений: 1,156
Завершенные тесты: 1
18.02.2011, 22:18  [ТС] #3
Топорик,
Проверкой в недиагонали разобрался. )
Просто на диагональ вписал все нули и все дальше дело техники

А вот почему тот код не правильно сравнивает 2 матрици хз...
0
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
19.02.2011, 07:51 #4
А вот почему тот код не правильно сравнивает 2 матрици хз...
а интересно, где ваш код их сравнивает?
если вот тут:
C++
1
if (a == b)
то вы сравниваете не матрицы, а всего лишь 2 указателя...

матрицы сравниваются, например так:
C++
1
2
3
4
5
6
7
8
9
//Array1 - первая матрица, Array2 - вторая матрица, n - размер, причем у обоих матриц он одинаков. Матрицы квадратные!
bool isEqual (int **Array1, int **Array2, size_t n)
{
    for (size_t i = 0; i < n; i++)
        for (size_t j = 0; j < n; j++)
            if (Array1[i][j] != Array2[i][j])
                return false;
    return true;
}
ну и касательно вашего кода применять эту функцию так:
C++
1
2
if (isEqual(a, b, n))
    std::cout << "Матрицы равны!";
1
Kill100
405 / 271 / 37
Регистрация: 11.12.2010
Сообщений: 1,156
Завершенные тесты: 1
19.02.2011, 12:33  [ТС] #5
Vandris,
О+о то есть просто сравниванием нельзя было...
Спс буду знать )
А как применять функции знаю Просто в сравнении этом запутался...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2011, 12:33
Привет! Вот еще темы с ответами:

В заданной квадратной матрице заменить минимальный элемент на 0, затем найти сумму элементов главной диагонали - C++
В матрице размерности 7 на 7 посчитать в каждом втором столбце заме- нить минимальный элемент нулем. Во вновь полученной...

Как заменить все элементы главной диагонали в квадратной матрицы на какое-то число? - C++
Как заменить все элементы главной диагонали в квадратной матрицы на какое-то число? и еще один вопрос как в массиве 12 элементов...

Заменить в матрице все элементы выше главной диагонали числом 2 - C++
Дана целочисленная матрица размера NxM. Заменить в данной матрице все элементы выше главной диагонали числом 2.

все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных - C++
все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
19.02.2011, 12:33
Ответ Создать тему
Опции темы

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