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

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

Войти
Регистрация
Восстановить пароль
 
Xex
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 5
#1

Обработка массивов - C++

02.12.2009, 13:42. Просмотров 384. Ответов 2
Метки нет (Все метки)

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

Немогу понять саму суть определения магического квадрата...Помогите с этой частью кода
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2009, 13:42     Обработка массивов
Посмотрите здесь:

C++ Обработка массивов
Обработка массивов C++
C++ С. Обработка массивов
C++ обработка массивов
C++ Обработка массивов
C++ Обработка массивов
Обработка массивов C++
C++ Обработка массивов
Обработка массивов C++
C++ Обработка массивов
C++ Обработка массивов
C++ Обработка массивов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
02.12.2009, 13:47     Обработка массивов #2
как я понял из твоего описания - надо просто посчитать сумму элементов строк и столбцов. по отдельности конечно - т.е. посчитал сумму 1-ой строки, 2-ой....Н-ой.. сравнил - совпало - ништяк.. так же со столбцами.... и если правильно понял должны совпадать еще и суммы столбцов и строк.

наверное если матрица у тебя:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
то это то что надо
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.12.2009, 16:51     Обработка массивов #3
Если n - размерность массива, а mas[][] - ранее заполненный массив, то так:
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
int kontr_sum=0, i, j, temp, kontr=1;
for(i=0; i<n; i++)
kontr_sum+=mas[0][i];
for(i=1; i<n && kontr; i++)
{
    temp=0;
for(j=0; j<n; j++)
temp+=mas[i][j];
if(temp!=kontr_sum)
kontr=0;
}
for(i=0; i<n && kontr; i++)
{
    temp=0;
for(j=0; j<n; j++)
temp+=mas[j][i];
if(temp!=kontr_sum)
kontr=0;
}
temp=0;
for(i=0; i<n && kontr; i++)
temp+=mas[i][i];
if(temp!=kontr_sum)
kontr=0;
temp=0;
for(i=0; i<n && kontr; i++)
temp+=mas[i][n-i-1];
if(temp!=kontr_sum)
kontr=0;
if(!kontr)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
Кстати добавлена проверка и по диагоналям (для магического квадрата и сумма в диагоналях таже самая должна быть).
Yandex
Объявления
02.12.2009, 16:51     Обработка массивов
Ответ Создать тему
Опции темы

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