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

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

Войти
Регистрация
Восстановить пароль
 
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
#1

Проверка симметричности матрицы - C++

02.12.2013, 12:11. Просмотров 358. Ответов 3
Метки нет (Все метки)

Добрый день! Подскажите пожалуйста, в чем дело? Программа работает не правильно. Если я к примеру ввожу матрицу:
2 1 4
2 2 3
4 3 2
Программа пишет что симметрична.

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
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include  <iostream>
#include <conio.h>
#include <iomanip>
#include "MyCrt.cpp"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "Russian");
    int proverka = 0;
    int array1[3][3];
    do
    {
        ClrScr();
        cout << "Введите элементы массива " << endl;
        for(int i = 0; i < 3; ++i)
        {
            cout << "Строка " << i + 1 << ": ";
            for(int j = 0; j < 3; ++j)
                cin >> array1[i][j];
            cin.sync();
        }
        cout << endl;
        cout << endl;
        for(int i = 0; i < 3; ++i)
        {
            for(int j = 0; j < 3; ++j)
                cout << setw(3) << array1[i][j];
            cout << endl;
        }
        for(int i = 0; i < 3; ++i)
            for(int j = 0; j < 3; ++j)
                if (i != j)
                    if (array1[i][j] == array1[j][i])
                        proverka = 1;
                    else 
                        proverka = 0;
        if (proverka == 1) 
            cout << "Симметрична\n";
        else
            cout << "Не симметрична\n";
        cout << "Для завершения работы нажмите esc, для продолжения нажмите любую клавишу.\n";
    }
        while (_getch() != 27);
    cin.get();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 12:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка симметричности матрицы (C++):

Проверка симметричности матрицы - C++
Программа проверяет массив на симметричность. Программа как бы работает, но когда я ввожу с клавиатуры массив то говорит, что программа...

Ввод непустого массива с клавиатуры и проверка симметричности - C++
Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, и печатает Yes, если массив симметричен, и No иначе.

Написать программу определения симметричности матрицы - C++
Добрый день. Задание: Написать программу использующую функцию определения симметричности матрицы int sim(int **a); Результат: 1 -...

Шаблонный класс матрицы. Проверка матрицы на пустоту - C++
Есть задание (приложил картинку - zadanie.png) Вот что уже скодил: massive.h #ifndef MASSIVE_H #define MASSIVE_H #include...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
02.12.2013, 12:22 #2
Естественно, что она не будет работать.
Цитата Сообщение от niikiita Посмотреть сообщение
for(int i = 0; i < 3; ++i)
* * * * * * for(int j = 0; j < 3; ++j)
* * * * * * * * if (i != j)
* * * * * * * * * * if (array1[i][j] == array1[j][i])
* * * * * * * * * * * * proverka = 1;
* * * * * * * * * * else
* * * * * * * * * * * * proverka = 0;
У Вас в целом алгоритм неправильный. В Вашей матрице последний элемент, который проверяется (3,2) он равен (2,3) - естественно, что "proverka = 1".
0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
02.12.2013, 12:27  [ТС] #3
Цитата Сообщение от Ded_Vasilij Посмотреть сообщение
Естественно, что она не будет работать.

У Вас в целом алгоритм неправильный. В Вашей матрице последний элемент, который проверяется (3,2) он равен (2,3) - естественно, что "proverka = 1".
Т. е. мне нужно полность поменять проверку?
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 13:28 #4
Решение "в лоб"
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 a[100][100];
    int n,i,j,k;
    cin>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            cin>>a[i][j];
    k=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if (a[i][j]!=a[j][i])
                k=1;
    if (k==0) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 13:28
Привет! Вот еще темы с ответами:

Проверка матрицы на Х-образность - C++
Как правильно организовать проверку матрицы на X-образность (когда элементы главной и побочной диагонали !=0, а остальные нулевые)

Проверка квадратной матрицы на симметричность - C++
Помогите сделать программу, вот мой код: #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;conio.h&quot; int main() {int A,i,j,B,n; ...

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

Проверка на количество элементов матрицы - C++
Как сделать проверку на количество элементов матрицы в файле, то есть, например, если размерность матрицы 3х3, а количество элементов всего...


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

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

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