Объявить массив данных типа int размером 3 ** 3. Ввести с консоли его значения, вывести...

0 голосов
68 просмотров

Объявить массив данных типа int размером 3 на 3. Ввести с консоли его значения, вывести на консоль сумму его элементов, расположенных на главной диагонали и сумму элементов, расположенных на побочной диагонали. Проверить, является ли матрица «магическим квадратом» (в «магическом квадрате» суммы элементов по вер-тикали, горизонтали и диагонали равны).Для языка C


Информатика (36 баллов) | 68 просмотров
0

Мда...Задание не из легких :/

Дан 1 ответ
0 голосов

#include "stdafx.h"
#include
#include

int main()  
  {
    SetConsoleCP(1251);   
   
    SetConsoleOutputCP(1251);  
 

int const n=3;
int mas[n][n];

int sum1, sum2;

bool magik;

for (int i=0; i
    for (int j=0; j
         {

           printf("mas[%d][%d] = ", i+1, j+1);

           scanf("%d",&mas[ i ][ j ]);

         }


printf("\nВведенная матрица:\n");
     for (int i=0; i
        {

             for (int j=0; j
                       {

                          printf("%d  ",mas[ i ][ j ]);

                       }

             printf("\n");

         }

sum1=0;
sum2=0;


for (int i = 0; i
     {

            sum1 += mas[ i ][ i ];

            sum2 += mas[ i ][ n-1-i ];

      }

printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);



magik = true;
for (int i=0; i
    {

        if (sum1==sum2)

             {

                 sum2=0;

                 for (int j=0; j
                    {

                        sum2 += mas[ i ][ j ];

                     }

              }
else  { magik=false; break; }
     }

if (magik==true)
     {

           for (int i=0; i    
               {

                   if (sum1==sum2)

                        {

                           sum2=0;

                           for (int j=0; j
                               {

                                   sum2 += mas[ j ][ i ];

                               }

                         }

                        else 
{ magik=false; break; }
                 }

       }

if (magik==true)
    printf("\nМатрица является магическим квадратом\n");
  
else
    printf("\nМатрица не является магическим квадратом\n");

system("pause");
return 0;
}

(3.2k баллов)