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

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

Войти
Регистрация
Восстановить пароль
 
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
#1

Симметрия главной диагонали. - C++

09.10.2011, 14:21. Просмотров 806. Ответов 7
Метки нет (Все метки)

Ребят,вобщем у меня есть задача: Дана матрица A(6,6)Определить являеться ли она симметричной относительной глвной диагонали.Если да то все эл.диагонали заменить нулями.

Подскажите код для проверки на симметричность относительно главной диагонали.

Если раписать матрицу:
A00 A01 A02
A10 A11 A12
A20 A21 A22

Нужно будет поменять местами в коде А10 с А01 и т.д Тоесть буду менять Аij с Aji.Но как грамотно написать,не могу догнать =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 14:21     Симметрия главной диагонали.
Посмотрите здесь:

Найти сумму каждой диагонали матрицы выше главной диагонали - C++
Дана матрица n*m, найти сумму каждой диагонали отдельно, выше главной диагонали. Не могу понять задачу помогите пожалуйста.

Разместить на главной диагонали матрицы суммы элементов, лежщих на диагоналях, перпендикулярных к главной - C++
Не могу решыть задучу.Выглядит примерно так.Создать квадратную матрицу целых чисел размером 9х9.Заполнить матрицу случайными числами....

Составить функцию нахождения максимального элемента Мх в диагонали матрицы, параллельной главной диагонали - C++
Пожалуйста помогите с решением задачи на С++ Составить функцию нахождения максимального элемента Мх в диагонали матрицы, ...

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

Составить функцию нахождения максимального элемента в диагонали матрицы, параллельной главной диагонали - C++
Составить функцию нахождения максимального элемента в диагонали матрицы, параллельной главной диагонали. Используя эту функцию в матрице...

Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали - C++
Доброго времени суток. Имеется задача: Дан вещественный массив А. Заменить каждый нулевой элемент главной диагонали максимальным...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 14:31     Симметрия главной диагонали. #2
примерно так:
C++
1
2
3
4
5
6
7
8
9
//тут ввод матрицы и т.п.
for(int i=1;i<6;i++)
   for(j=0;j<i;j++)
       if(A[i][j]!=A[j][i]) 
       {
            cout<<"Матрица несимметричная!";
            return 0;
       }
/*сюда программа дойдет, если у тебя матрица будет симметричная, и тут ты должен элементы диагонали менять на 0*/
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
13.10.2011, 14:49  [ТС]     Симметрия главной диагонали. #3
Спасибо

Добавлено через 23 часа 55 минут
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
#include<stdio.h>
main()
{
 float A[9][9]; int i,j,n,m,l;
 printf("Введите размер матрицы=");
 scanf("%d%d",&n,&m);
 printf("Введите матрицу A[%d][%d]\n",n,n);
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
  scanf("%f",A[i][j]);
 for(l=1;l==1;)
 {
  l=0;
  for(i=1;i<n;i++)
   for(j=0;j<i;i++)
   if(A[i][j]!=A[j][i]) printf("Матрица не симметрична");
   l=1;
 }
 A[i][i]=0;
 printf("Преобразованная матрица\n");
 for(i=0;i<n;i++)
 {
  for(j=0;j<m;j++)
   printf("%7.2f",A[i][j]);
   printf("\n");
 }
}
В общем у меня получилось так.Но не могу понять,после того как я ввожу размер матрицы,пишет scanf: floating points formats not linked
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
13.10.2011, 15:29     Симметрия главной диагонали. #4
по-моему в сканфе амперсанд пропустил
scanf("%f",&A[i][j]);
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
13.10.2011, 17:13  [ТС]     Симметрия главной диагонали. #5
Был он там,я просто уже без него попробовал и забыл добавить обратно)
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
13.10.2011, 18:15     Симметрия главной диагонали. #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
29
30
31
32
33
34
35
#include<stdio.h>
int main()
{
    float A[9][9];
    int N;
    printf("Enter N: ");
    scanf("%d", &N);
    printf("Enter matrix elements (%d total):\n",N*N);
    int i,j;
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%f", &A[i][j]);
    int flag=1;
    for(i=1;i<N;i++)
        for(j=0;j<i;j++)
            if(A[i][j]!=A[j][i])
            {
                flag=0;
                break;
            }
    if(flag)
    {
        for(i=0;i<N;i++)
            A[i][i]=0;
        printf("\nMatrix is symmetric\nNew matrix:\n");
    }
    else
        printf("\nMatrix not symmetric! So no transform\nOld matrix:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%.2f ", A[i][j]);
        printf("\n");
    }
}
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
14.10.2011, 14:58  [ТС]     Симметрия главной диагонали. #7
Очень странно,с вашим кодом точно такая же ошибка.
Работаю в turbo C,мб в нем самом проблемма?
И скажите почему у вас N*N?
C++
1
printf("Enter matrix elements (%d total):\n",N*N);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2011, 15:15     Симметрия главной диагонали.
Еще ссылки по теме:

Алгоритм обхода диагонали параллельной главной диагонали матрицы - C++
Как обработать каждый элемент матрицы, находящийся на диагонали параллельной главной диагонали? Понимаю, что надо ввести какую-то...

Сохранить все нулевые элементы, размещенные на главной диагонали и в верхней половине области выше диагонали - C++
Сохранить все нулевые элементы , размещенные на главной диагонали и в верхней половине области выше диагонали . Срочно!!

Вывести строку матрицы, в которой элемент, стоящий на главной диагонале, максимальный среди элементов главной диагонали. - C++
Дано квадратную матрицу порядка N. Вывести строку матрицы, в которой элемент, стоящий на главной диагонале, максимальный среди элементов...

Сохранить все нулевые элементы, размещенные ниже главной диагонали на нечетных строках а выше главной в четных - C++
Вот такая задача : Сохранить все нулевые элементы Размещенные ниже главной диагонали На нечетных строках А выше главной в четных. Это надо...


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

Или воспользуйтесь поиском по форуму:
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
14.10.2011, 15:15     Симметрия главной диагонали. #8
турбо С - очень старый компилятор, он не поддерживает многих вещей.
попробуй все объявления переменных из моего кода вынести в начало функции main()
если это не поможет, то тут я не знаю, что подсказать, никогда не писала в этом компиляторе. Единственное, что могу сказать - поставь более новый компилятор, список есть в начале раздела в теме Бесплатные IDE

N*N - потому что в массиве размерностью N строк N столбцов - N*N элементов всего. Поскольку массив квадратный, достаточно задавать только один размер N(число строк=числу столбцов), например, N=3, а всего элементов в массиве 3х3 будет 9
Yandex
Объявления
14.10.2011, 15:15     Симметрия главной диагонали.
Ответ Создать тему
Опции темы

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