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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Kill100
 Аватар для Kill100
356 / 245 / 32
Регистрация: 11.12.2010
Сообщений: 1,060
Завершенные тесты: 1
18.02.2011, 21:03     Проверить что в квадратной матрице все нули кроме главной диагонали #1
Как проверить что в квадратной матрице все нули кроме главной диагонали...


и помогите найти ошибку
По определению если (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;   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 21:03     Проверить что в квадратной матрице все нули кроме главной диагонали
Посмотрите здесь:

C++ В квадратной матрице заменить элементы главной и побочной диагонали на минимальный элемент
C++ Как заменить все элементы главной диагонали в квадратной матрицы на какое-то число?
C++ В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали
C++ Обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали
В квадратной матрице найти сумму элементов ниже главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Топорик
7 / 7 / 1
Регистрация: 15.02.2011
Сообщений: 19
18.02.2011, 22:00     Проверить что в квадратной матрице все нули кроме главной диагонали #2
Мне кажется, что проще решить эту задачу простым перебором
Kill100
 Аватар для Kill100
356 / 245 / 32
Регистрация: 11.12.2010
Сообщений: 1,060
Завершенные тесты: 1
18.02.2011, 22:18  [ТС]     Проверить что в квадратной матрице все нули кроме главной диагонали #3
Топорик,
Проверкой в недиагонали разобрался. )
Просто на диагональ вписал все нули и все дальше дело техники

А вот почему тот код не правильно сравнивает 2 матрици хз...
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
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 << "Матрицы равны!";
Kill100
 Аватар для Kill100
356 / 245 / 32
Регистрация: 11.12.2010
Сообщений: 1,060
Завершенные тесты: 1
19.02.2011, 12:33  [ТС]     Проверить что в квадратной матрице все нули кроме главной диагонали #5
Vandris,
О+о то есть просто сравниванием нельзя было...
Спс буду знать )
А как применять функции знаю Просто в сравнении этом запутался...
Yandex
Объявления
19.02.2011, 12:33     Проверить что в квадратной матрице все нули кроме главной диагонали
Ответ Создать тему
Опции темы

Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru