Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> магический квадрат 
:(
    Опции темы
Bridget
Дата 18.12.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



помогите, пожалуйста, решить. Является ли квадратная матрица магическим квадратом (суммы элементов в каждой строке и каждом столбце равны)
Я думаю, надо сначала посчитать сумму элементов в 1 строке. а потом сравнивать суммы в строках и столбцах с ней. как это сделать?
PM MAIL   Вверх
Dmi3ev
Дата 18.12.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



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

Добавлено через 39 секунд
а можно и так, как ты говоришь...

Добавлено через 1 минуту и 46 секунд
только у тебя про диагонали ни слова, а они тоже в магическом квадрате немного участвуют... не забывай...


--------------------

PM MAIL   Вверх
Bridget
Дата 18.12.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.11.2008

Репутация: нет
Всего: нет



у меня в задаче не написано про диагонали. вот так нормально будет??

i=0;
for(j=0;j<n;j++)
 s1=s1+Mx[i][j];

s2=s1;
i=1;
while(s1==s2 && i<n)
  {s2=0;
   for (j=0; j<n; j++)
     {s2=s2+Mx[i][j];
      }
   i++;
  }

while(s1==s2 && j<n)
 {s2=0;
   for(i=0; i<n; i++)
   {s2=s2+Mx[i][j];
   }
  j++
 }

if(s1==s2) printf ("yes");
else printf ("no");


Это сообщение отредактировал(а) Bridget - 18.12.2008, 15:38
PM MAIL   Вверх
Dov
Дата 19.12.2008, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Код
typedef vector<int>  Vect;
typedef vector<Vect> Matr;

int main() 
{
    Matr matr;
    int  SIZE;

    // запрашиваем размер матрицы
    cout << "Enter a matrix order[ >0 ]: ";
    cin  >> SIZE;

    // заполняем матрицу значениями
    for(int i = 0; i < SIZE; i++)
    {
        matr.push_back(Vect());
        matr[i].resize(SIZE);
        for(int j = 0; j < SIZE; j++) 
        {
            cout << "matr[" << i << "][" << j << "] =";
            cin  >> matr[i][j];
        }
    }

    // подсчитываем сумму диагоналей 
    int  sumdiag1 = matr[0][0];
    int  sumdiag2 = matr[0][SIZE - 1];
    for(int i = 1; i < SIZE; i++)
    {
        sumdiag1 += matr[i][i];
        sumdiag2 += matr[i][SIZE - i - 1];
    }

    // и проверяем её на равенство
    bool magic = (sumdiag1 == sumdiag2);

    // проверяем строки и столбцы матрицы
    for(int i = 0; magic && i < SIZE; i++)
    {
        int sumrow = 0;
        int sumcol = 0;

        for(int j = 0; j < SIZE; j++) 
        {
            sumrow += matr[i][j];
            sumcol += matr[j][i];            
        }

        magic = (sumdiag1 == sumrow && sumdiag1 == sumcol);
    }

    // выводим результат проверки на экран
    cout << "\nThe matrix is" << ( !magic ? " not " : " " ) << "a magic square...\n" << endl;

    return 0;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0821 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.