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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.90
rita_0705
1 / 1 / 0
Регистрация: 30.04.2012
Сообщений: 125
#1

Проверить является ли квадратная матрица " магическим квадратом" - C++

29.05.2012, 18:25. Просмотров 4603. Ответов 1
Метки нет (Все метки)

Дан двумерный массив размером n х n , заполненный целыми числами. Выяснить, является ли массив магическим квадратом. В магическом квадрате суммы элементов по всем строкам, столбцам и двум диагоналям равны. Значение , которому должны быть равны указанные суммы, определить самостоятельно.

Вот код программы, программа запускается, но не зависимо от того какую именно матрицу я ввожу, выходит сообщение " не магический квадрат". какое то из условий не выполняется, пожалуйста под скажите в чем может быть ошибка.
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
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
main()
{int sum,n,i,j,k,g; float a[15][15], b[15];
cout <<"vvedite  razmernost matricy"<<"\n";
cin>>n;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{cout<<"vvedite element"<<"a"<<i<<j<<"\n";
cin>>a[j][j];}
b[i]=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{b[i]=b[i]+a[i][j];}
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
{b[n+i]=b[n+i]+a[i][j];}
k=n+i;
b[k+1]=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
if (i==j) b[k+1]=b[k+1]+a[i][j];
b[k+2]=0;
for (i=1;i<=n;i++)
for (j=1; j<=n;j++)
if (i+j==n+1) b[k+2]=b[k+2]+a[i][j];
sum=b[1];g=0;
for (i=1;i<=k+2;i++)
{if (sum==b[i])g++;}
if (k+2==g)
cout<<"Magicheskii kvadrat";
else cout<<"ne magicheskii kvadrat";
getch();
return 0;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 18:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить является ли квадратная матрица " магическим квадратом" (C++):

Проверить, является ли введенная с клавиатуры квадратная матрица "Магическим квадратом" - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица &quot;магическим&quot; квадратом. ...

Проверить, является ли введенная с клавиатуры квадратная матрица "магическим" квадратом - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица &quot;магическим&quot; квадратом. &quot;Магическим&quot; квадратом...

является ли введенная с клавиатуры квадратная матрица "магическим" квадратом - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матр &quot;магическим&quot; квадратом. &quot;Магическим&quot; квадратом...

Проверка, является ли матрица "магическим квадратом" - C++
Написать программу, которая проверяет, является ли введённая с клавиатуры квадратная мат-рица &quot;магическим&quot; квадратом. Размер матрицы до...

Является ли матрица "магическим квадратом" - C++
Ребят, написал программу по следующему заданию:&quot;Дан целочисленный массив A. Проверить, является ли данный массив «магическим квадратом», то...

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

1
Andrey.K
343 / 264 / 15
Регистрация: 14.11.2010
Сообщений: 482
29.05.2012, 19:00 #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
58
59
60
61
62
63
64
#include <iostream>
#include <conio.h> 
using namespace std;
const int n=3;
int main()
{
    setlocale(LC_CTYPE, "rus");
    int mas[n][n]={3,4,2,
                   2,3,4,
                   4,2,3}; // наш квадрат
    int mas1[8]={0,0,0,0,0,0,0,0}; // массив хранит суммы 
    int pos=0;
    //сумма по строкам
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            mas1[pos]+=mas[i][j];
        }
        pos++;
    }
    cout<<mas1[pos-1]<<endl;
    // сумма по столбцам
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            mas1[pos]+=mas[j][i];
        }
        pos++;
    }
    cout<<mas1[pos-1]<<endl;
    //сумма побочной диагонали
    for(int i=n;i>-1;i--)
    {
        for(int j=0;j<n;j++)
        {
            if(i==j)
            mas1[pos]+=mas[i][j];
        }
    }
    cout<<mas1[pos-1]<<endl;
 
    //сумма по главной диагонали
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(i==j)
            mas1[pos]+=mas[i][j];
        }
    }
    cout<<mas1[pos-1]<<endl;
 
    int value=mas1[0],count=0;
    for(int i=0;i<pos;i++)
    {
        if(mas1[i]==value) count++;
    }
    if(count==pos) cout<<"Магический квадрат."<<endl;
    else cout<<"Не является магическим квадратом."<<endl;
    getch();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2012, 19:00
Привет! Вот еще темы с ответами:

Определить ,является ли заданная квадратная матрица магическим квадратом - C++
Написать программу,которая позволяет определить ,является ли заданная квадратная матрица магическим квадратом ,то есть такой , в которой...

Проверить, является ли матрица магическим квадратом - C++
Здравствуйте! Решил задачку с сайта http://informatics.mccme.ru, но в двух тестах - неправильный ответ. Кто-нибудь, пожалуйста, подскажите...

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

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


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

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

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