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

Магический квадрат) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.75
Five-P
 Аватар для Five-P
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 10
14.03.2011, 21:49     Магический квадрат) #1
Определить, является ли заданная квадратная матрица порядка n магическим квадратом, т.е. матрицей, у которой суммы элементов строк и столбцов одинаковы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 21:49     Магический квадрат)
Посмотрите здесь:

Магический квадрат C++
Магический квадрат C++
C++ Магический квадрат
Магический квадрат C++
C++ Магический квадрат
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
15.03.2011, 01:16     Магический квадрат) #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
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#define N 6
using namespace std;
 
int main()
{
    system("color 0C");
    int i,j;
//апокалиптический магический квадрат: сумма строк, столбцов,
//по главной и побочной диагонали - 666
    int ApMS[N][N] = 
        {3, 107,     5, 131,      109,   311,
        7331,    193,    11,     83, 41,
        103,    53, 71, 89, 151,    199,
        113,     61,    97, 197,    167,    31,
        367,     13,    173,    59,     17, 37,
        73,    101, 127,    179,    139,    47};
 
//суммы строк
    int raws[N] = {0,0,0,0,0,0};
    for(i=0;i<N;i++)
    {   for(j=0;j<N;j++)
            raws[i]+=ApMS[i][j];
        cout<<"Raw"<<i<<": "<<raws[i]<<endl;
    }
//суммы столбцов
    int cols[N] = {0,0,0,0,0,0};
        for(j=0;j<N;j++)
        {   for(i=0;i<N;i++)
                cols[j]+=ApMS[i][j];
            cout<<"Column"<<j<<": "<<cols[j]<<endl;
        }
//сумма главной диагонали
    int mD = 0;
    for(i=0;i<N;i++)
        mD+= ApMS[i][i];
    cout<<"Main diagonal: "<<mD<<endl;
//сумма побочной диагонали
    int sD = 0;
    for(i=0;i<N;i++)
        sD+= ApMS[i][N-i-1];
    cout<<"Subdiagonal: "<<sD<<endl;
//если мы докажем, что все найденные суммы по очереди равны одной из них,
//то они равны между собой. Выберем в качестве эталона главную диагональ
    bool eq = true;
    if(mD!=sD) eq = false;
    for(i=0;i<N;i++)
        if(mD!=raws[i] || mD!=cols[i])
        {   eq = false;
            break;
        }
    if(eq) cout<<"The magic square found! BEWARE!!!\n";
    else cout<<"The square failed.\n";
    
    cin.get();
    return 0;
}
Zumuist
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 149
23.09.2013, 10:20     Магический квадрат) #3
А можешь сделать, чтоб элементы матрицы вводить в ручную ?
Мне нужна подобная программа.
Квадратная матрица M, состоящая из целых чисел, вводится с клавиатуры. Определить, является ли она магическим квадратом
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
23.09.2013, 15:31     Магический квадрат) #4
Ввод вручную и вывод на экран:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int N;
    cout<<"Enter size of array "<<endl;
    cin>>N;
    int ApMS[N][N];
//    srand(time(NULL));
    for (int i=0; i<N; i++){
        for (int j=0; j<N; j++){
            cout<<"Enter element matrix["<<i<<"]["<<j<<"]: ";
            cin>>ApMS[i][j];
        }
    }
    cout<<"Matrix is"<<endl;
    for (int i=0; i<N; i++){
        for (int j=0; j<N; j++){
            cout.width(2);
            cout<<ApMS[i][j]<<" ";
        }
        cout<<endl;
    }
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
23.09.2013, 15:39     Магический квадрат) #5
Цитата Сообщение от IrineK Посмотреть сообщение
raws
rows
Zumuist
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 149
23.09.2013, 16:03     Магический квадрат) #6
Т.е. данный кусочек кода нужно состыковать с кодом который прислала IrineK и будет магический квадрат?
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
23.09.2013, 16:20     Магический квадрат) #7
Zumuist, да. Попробуй.
Zumuist
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 149
23.09.2013, 16:54     Магический квадрат) #8
А реально в данной программе реализовать функцию и перегрузку функции для массива целого, вещественного и символьного типа?
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
23.09.2013, 16:59     Магический квадрат) #9
Zumuist, да. Всё реально.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11824 / 6803 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
23.09.2013, 20:36     Магический квадрат) #10
Может пригодиться:
Магический квадрат
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2013, 09:53     Магический квадрат)
Еще ссылки по теме:

C++ Магический квадрат
Магический квадрат C++
Магический квадрат C++

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

Или воспользуйтесь поиском по форуму:
Zumuist
2 / 2 / 0
Регистрация: 23.09.2013
Сообщений: 149
24.09.2013, 09:53     Магический квадрат) #11
Спасибо большое за всё.
Yandex
Объявления
24.09.2013, 09:53     Магический квадрат)
Ответ Создать тему
Опции темы

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