Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32

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

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

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

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

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

Нужно будет поменять местами в коде А10 с А01 и т.д Тоесть буду менять Аij с Aji.Но как грамотно написать,не могу догнать =)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2011, 14:21
Ответы с готовыми решениями:

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

Записать в матрице нули ниже главной диагонали и единицы выше главной диагонали
3. Матрицу A(n,n) преобразовать к следующему виду: записать нули ниже главной диагонали и единицы выше главной диагонали.

Вывести на печать элементы главной диагонали и диагонали, расположенной под главной
Помогите мне сделать программу. Нужно ранспонировать матрицу и вывести на печать элементы главной диагонали и диагонали, расположенной под...

7
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 14:31
примерно так:
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*/
1
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
13.10.2011, 14:49  [ТС]
Спасибо

Добавлено через 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
0
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
13.10.2011, 15:29
по-моему в сканфе амперсанд пропустил
scanf("%f",&A[i][j]);
0
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
13.10.2011, 17:13  [ТС]
Был он там,я просто уже без него попробовал и забыл добавить обратно)
0
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
13.10.2011, 18:15
ну не знаю, скопипастила твой код, так он у меня вообще на сканфе аварийно завершался с акцес виолейшеном(
так что написала свой, без русского правда))
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");
    }
}
1
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
14.10.2011, 14:58  [ТС]
Очень странно,с вашим кодом точно такая же ошибка.
Работаю в turbo C,мб в нем самом проблемма?
И скажите почему у вас N*N?
C++
1
printf("Enter matrix elements (%d total):\n",N*N);
0
 Аватар для aeshes
448 / 211 / 21
Регистрация: 07.10.2011
Сообщений: 462
14.10.2011, 15:15
турбо С - очень старый компилятор, он не поддерживает многих вещей.
попробуй все объявления переменных из моего кода вынести в начало функции main()
если это не поможет, то тут я не знаю, что подсказать, никогда не писала в этом компиляторе. Единственное, что могу сказать - поставь более новый компилятор, список есть в начале раздела в теме Бесплатные IDE

N*N - потому что в массиве размерностью N строк N столбцов - N*N элементов всего. Поскольку массив квадратный, достаточно задавать только один размер N(число строк=числу столбцов), например, N=3, а всего элементов в массиве 3х3 будет 9
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2011, 15:15
Помогаю со студенческими работами здесь

Вывести на экран значения тех эле-ментов, лежащих выше главной диагонали, которые больше всех элементов, лежащих ниже главной диагонали
А кто-нибудь может помочь еще с этим: Дан вещественный массив А. Вывести на экран значения тех эле-ментов, лежащих выше главной...

Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали
Дана квадратная матрица натуральных чисел.Определить верно ли утверждение:Cреднее арифметическое элементов выше главной диагонали больше...

Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали?
Дана квадратная матрица натуральных чисел,( получаемая через rand()) .Определить, верно ли утверждение: сумма эллементов выше главной...

Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали
Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали.

Отсортировать диагонали матрицы,расположенные выше главной, по убыванию элементов, а диагонали матрицы, расположенные ниже главной, по возрастанию
дана матрица размерностью nxn, содержащая целые числа. Отсортировать диагонали матрицы,расположенные выше главной, по убыванию элементов, а...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru