Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 212

Проверить, является ли матрица магическим квадратом

10.01.2016, 16:45. Показов 1835. Ответов 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
   Console.WriteLine("Введите размер матрицы ");
            Console.Write("-> ");
            int n = int.Parse(Console.ReadLine());
            int x = n;
            int z = n;
            int[,] mas;
            mas = new int[x, z];
            for (int i = 0; i < mas.Length; i++)
            {
                for (int j = 0; j < mas.Length; j++)
                {
                    Console.WriteLine("Заполняем ряды матрицы. введите число и нажмите <Enter>");
                    Console.Write("-> ");
                    mas[i,j] = int.Parse(Console.ReadLine());
                    if(j == 2)
                    {
                        break;
                    }
                }
              if (i == 2)
                {
                    break;
                }
            }
 
            for (int i = 0; i < mas.Length; i++)
            {
                for (int j = 0; j < mas.Length; j++)
                {
                    Console.Write(mas[i,j] + " ");
                    if (j == 2)
                    {
                        break;
                    }
                }
                Console.WriteLine();
                if (i == 2)
                {
                    break;
                }
            }
 
            int sum = 0;
            int sum2 = 0;
            int sum3 = 0;
            int sum4 = 0;
            int sum5 = 0;
            for (int i = 0; i < mas.Length; i++)
            {
                for (int j = 0; j < mas.Length; j++)
                {
                    sum += mas[i, j];
                    if(j == 2)
                    {
                        for ( i = 1; i < mas.Length; i++)
                        {
                            for ( j = 0; j < mas.Length; j++)
                            {
                                sum2 += mas[i, j];
                                if(j == 2)
                                {
                                    for ( i = 2; i < mas.Length; i++)
                                    {
                                        for ( j = 0; j < mas.Length; j++)
                                        {
                                            sum3 += mas[i, j];
                                            if(j == 2)
                                            {
                                                for ( j = 0; j < mas.Length; j++)
                                                {
                                                    for ( i = 0; i < mas.Length; i++)
                                                    {
                                                        sum4 += mas[j,i];
                                                        if(i == 2)
                                                        {
                                                            break;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Console.WriteLine("{0}  {1}  {2}  {3}");
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2016, 16:45
Ответы с готовыми решениями:

Проверить, является ли введённая с клавиатуры матрица магическим квадратом
Дана квадратная целочисленная матрица размера M. Написать программу, которая проверяет, является ли введённая с клавиатуры матрица...

Проверить, является ли введённая с клавиатуры матрица магическим квадратом
дана квадратные целочисленная матрица размера M. Написать программу которая проверяет является ли введённая с клавиатуры матрица магическим...

Определите, является ли матрица магическим квадратом
срочно помогите пожалуйста, сдавать через часов 10 Добавлено через 16 секунд using System; using System.Collections.Generic; ...

2
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
10.01.2016, 18:25
eluzor,
Если я правильно помню, это такая матрица, у которой равны суммы каждой строки, каждого столбца и диагоналей.
Тогда можно так:
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
class Program
{
    static void Main(string[] args)
    {
        int[,] matr = new int[,] { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } };
        Console.WriteLine(IsMagic(matr));
        int[,] matr2 = new int[,] { { 1, 1, 1 }, { 1, 0, 1 }, { 1, 1, 1 } };
        Console.WriteLine(IsMagic(matr2));
        Console.ReadKey();
    }
 
    static bool IsMagic(int[,] m)
    {
        int sum = 0, sum1=0, sum2 = 0;
        for (int i = 0; i < m.GetLength(0); i++)
        {
            sum += m[i, i];
            sum1 += m[i, m.GetLength(0) - 1 - i];
        }
        if (sum1 != sum)
            return false;
        for (int i = 0; i < m.GetLength(0); i++)
        {
            sum1=0;
            sum2=0;
            for (int j = 0; j < m.GetLength(0); j++)
            {
                sum1 += m[i, j];
                sum2 += m[j, i];
            }
            if (sum1!=sum ||sum2!=sum)
                return false;
        }
        return true;
    }
}
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
10.01.2016, 20:21
Магический квадрат

Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr = { { 2, 7, 6 }, 
                           { 9, 5, 1 },
                           { 4, 3, 8 } };
 
            Console.WriteLine(IsMagic(arr));
 
            Console.ReadKey();
        }
 
        static bool IsMagic(int[,] arr) {
 
            int n = arr.GetLength(0);
            if (n != arr.GetLength(1)) return false;
 
            int sum = n * (n * n + 1) / 2;          
 
            for (int i = 0; i < n; i++){
                
                int sumRow = 0;
                int sumCol = 0;
 
                for (int j = 0; j < n; j++){
                   sumRow += arr[i,j];
                   sumCol += arr[j,i];
                }
 
                if (sumRow != sum || sumCol != sum) return false;
            }
 
            int sumDiag1 = 0;
            int sumDiag2 = 0;
            for (int i = 0; i < n; i++)
            {
                sumDiag1 += arr[i,i];
                sumDiag2 += arr[n - 1 - i, i];
            }
            if (sumDiag1 != sum || sumDiag2 != sum) return false;
 
            return true;
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.01.2016, 20:21
Помогаю со студенческими работами здесь

Определите, является ли матрица магическим квадратом
Ребята привет..приехал на сессию..а у меня препода сменили и как бывает ниче не сказали на заочке) он С# я уже копаюсь...

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

Написать программу, которая проверяет, является ли введенная матрица магическим квадратом
Здравствуйте!!! Помогите пожалуйста с такой задачей на C# : Дана квадратная целочисленная матрица размера M. Написать программу, которая...

Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом
Помогите пожалуйста: Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом, т.е.такой, в которой...

Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом,
Здравствуйте, помогите пожалуйста ! Условие :Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru