5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
1

Проверить, является ли двумерный массив симметричным относительно главной диагонали

13.02.2018, 20:31. Показов 17196. Ответов 9
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
//проверка симметричности матрицы
int main()
{ int n;
 int a[100][100]; bool b=true;
 cin>>n;
 
 for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
        cin>>a[i][j];
 
for (int i=0;i<n;i++)
    for (int j=i+1; j<n;j++)
      if (a[i][j] !=a[j][i]) b=false;
 if (b) cout<<"YES";
 else cout <<"NO";
 return 0;
}
Добавлено через 11 минут
Школьники на С++ могут проходить тестирование на http://informatics.mccme.ru
Вроде там не надо даже иметь рабочую оболочку, не надо скадем,массивы вводить из файла так как на сайте есть поле для стандартного ввода куда можно вводить даже массивы.
Одна беда -при проверке задачи система часто пишет "частичное решение" и не считает тест пройденным без объяснения причин.
Вот пример. Условие задачи Симметричная ли матрица?
http://informatics.mccme.ru/mo... erid=355#1
Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная диагональ — та, которая идёт из левого верхнего угла двумерного массива в правый нижний.

Входные данные
Программа получает на вход число n <100, являющееся числом строк и столбцов в массиве. Далее во входном потоке идет n строк по n чисел, являющихся элементами массива.

Выходные данные
Программа должна выводить слово yes для симметричного массива и слово no для несимметричного.
ниже мое решение максимально упрощенное - без файлового ввода, без динамических массивов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
//проверка симметричности матрицы
int main()
{ int n;
 int a[100][100]; bool b=true;
 cin>>n;
 
 for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
        cin>>a[i][j];
 
for (int i=0;i<n;i++)
    for (int j=i+1; j<n;j++)
      if (a[i][j] !=a[j][i]) b=false;
 if (b) cout<<"YES";
 else cout <<"NO";
 return 0;
}
Частичное решение. Хоть убей ,не пойму почему
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2018, 20:31
Ответы с готовыми решениями:

Проверить является ли двумерный массив симметричным относительно главной диагонали
Задача №5 Дано число n, не превосходящее 10, и массив размером n × n. Проверьте, является ли...

Является ли двумерный массив симметричным относительно главной диагонали
Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная...

Определить является ли массив симметричным относительно побочной диагонали
дан квадратный массив целых(вещественных) чисел. Определить является ли массив симметричным...

Определить является ли массив симметричным относительно побочной диагонали
дан двухмерный квадратный массив целых чисел. определить является ли массив симметричным...

9
Заблокирован
13.02.2018, 20:40 2
возможно нужна проверка на корректность n
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
13.02.2018, 22:03 3
eugrita, MansMI, да нет, скорее тип данных массива не тот. Числа могут быть и int64_t и double и long double

Добавлено через 20 минут
Цитата Сообщение от eugrita Посмотреть сообщение
for (int i=0;i<n;i++)
* * for (int j=i+1; j<n;j++)
ну нет
Цитата Сообщение от eugrita Посмотреть сообщение
if (b) cout<<"YES";
*else cout <<"NO";
выходные данные
yes
выходные данные
no
1
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
14.02.2018, 22:45  [ТС] 4
а никто не хочет испытать свои силы в подобном тестировании? Пожалуйста - ссылку на ресурс я указал выше
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
15.02.2018, 17:39 5
Цитата Сообщение от eugrita Посмотреть сообщение
а никто не хочет испытать свои силы в подобном тестировании?
Я решил задачу...

Добавлено через 1 минуту
eugrita, чтобы сослаться на них, нажмите по нему
0
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
16.02.2018, 01:41  [ТС] 6
ну если решил, т.е система зачла задачу, скажите что не хватало мне в приведенном выше моем варианте?
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
16.02.2018, 19:40 7
eugrita, Проверить, является ли двумерный массив симметричным относительно главной диагонали

Добавлено через 43 секунды
Цитата Сообщение от eugrita Посмотреть сообщение
что не хватало мне
Внимательности
0
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
17.02.2018, 08:45  [ТС] 8
Ваши ответы я не понял. Что означает "ну нет"
Если вы считаете что приведенной мной код неверен так и скажите, где?
что означают * и ** в цитировании моих операторов?

Добавлено через 7 часов 51 минуту
Отправил на сайт и 2-ю версию решения задачи проверки Симметричности матрицы.
в предположении что элементы матрицы вещественные. (в условии об типе матрицы -ни слова)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
//проверка симметричности матрицы
int main()
{ int n;
 float a[100][100]; bool b=true;
 cin>>n;
 
 for (int i=0;i<n;i++)
    for (int j=0;j<n;j++)
        cin>>a[i][j];
 
for (int i=0;i<n;i++)
    for (int j=i+1; j<n;j++)
      if (fabs(a[i][j] -a[j][i]) > 0.0001)  b=false;
 if (b) cout<<"YES";
 else cout <<"NO";
 return 0;
}
опять - частичное решение.
на сайте указано: Версия языка С++ компилятор GNU 7.2
0
Модератор
Эксперт С++
12483 / 10036 / 6036
Регистрация: 18.12.2011
Сообщений: 26,864
17.02.2018, 08:57 9
Цитата Сообщение от eugrita Посмотреть сообщение
if (a[i][j] !=a[j][i]) b=false;
Если условие истинно, то нет смысла продолжать выполнение цикла.
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
17.02.2018, 13:10 10
zss, ну ты хоябы понял что значат мои комменты? Проверить, является ли двумерный массив симметричным относительно главной диагонали
Вот еще раз сама задача, оригинал http://informatics.mccme.ru/mo... erid=355#1
Если понял - не говори, внимательность так и тренеруется, пусть сам ищет, потом в шоке будет
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2018, 13:10
Помогаю со студенческими работами здесь

Определить является ли двумерный массив симметричным относительно центральной строки
дан двухмерный массив целых чисел, состоящий из нечетного количества строк и столбцов.определить...

Дан массив a(n) целых чисел. Проверить, является ли a симметричным относительно своего центрального элемента
Дан массив a(n) целых чисел. Проверить, является ли a симметричным относительно своего центрального...

Проверить, является ли заданная матрица симметричной относительно главной диагонали
Помогите , пожалуйста, написать программу на С++. Дана квадратная вещественная матрица...

Проверить, является ли матрица симметричной относительно своей главной диагонали
Дан двумерный массив размера N×N, заполненный целыми числами. Требуется определить, является ли он...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru