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

Определить, является ли матрица магическим квадратом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запутался в флагах http://www.cyberforum.ru/cpp-beginners/thread349185.html
Запутался в флагах, переменная rez вычисляется некорректно. Подскажите, как избавиться от ошибки, а ещё лучше, показать правильный код программы :-#include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <conio.h> struct Node {int key; Node *l; Node *r; };
C++ Принадлежит ли точка фигуре Определить принадлежность точки областям, обозначенным прописными буквами A и B. Строчными буквами обозначены определяемые пользователем параметры рисунка. Координаты точки x и y и другие параметры рисунка вводятся пользователем. http://www.cyberforum.ru/cpp-beginners/thread349172.html
Небольшая проблема с классами C++
Всем привет. Дано задание: Расширить иерархию классов с использованием виртуального абстактного класса в качестве основы иерархии. Определить в классе статическую компоненту - указатель на начало связанного списка объектов и статическую функцию для просмотра списка (инициализировать вне определения класса, в глобальной области). Статический метод просмотра списка вызывать не через объект, а...
Задача на суммарное количество C++
В лавке у вампира стоит несколько банок с кровью, четные и не четные. Четные записываются по арифметической прогрессии, в зависимости от дней, а не четные - по формуле 2*d+1 где d - количество дней. Входные данные - дни, и кол-во банок. Вывести суммарное количество крови.
C++ Проблема с выделением памяти http://www.cyberforum.ru/cpp-beginners/thread349151.html
Всем привет! Нужна помощь. Создаю класс и при компиляции возникает ошибка. Не пойму причину. Помогите пожалуйста. Конструктор должен выделять память под двумерный массив, конструктор копий должен соответственно выделить память и скопировать массив поэлементно. Но не получается пока ;( вот код #include <iostream> #include <conio.h> #include <windows.h> using std::cout;
C++ Посоветуйте отличную книжку для новичка по изучению С++ Посоветуйте отличную книжку для новичка по изучению С++,который вообще не знаком с языком... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
08.09.2011, 10:56     Определить, является ли матрица магическим квадратом
Цитата Сообщение от @ndreyk@ Посмотреть сообщение
Дана целая квадратная матрица 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
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
#include <ctype.h> //toupper
#include <stdio.h> //i/o
#include <conio.h> //getch
 
#define N 3 //Поставь число столбцов и строк которое хочешь, 
                //я поставил 3 чтобы сэкономить на проверке
 
int getRowSum(int iRow, int n, int arr[][N]);
int getColSum(int iCol, int n, int arr[][N]);
 
int main()
{
    bool IsMagic = true;
    char ch;
    int i,j,a[N][N];
    int RowSum[N];
    int ColSum[N];
    do
    {
        IsMagic = true;
        printf("Enter matrix\r\n");
        for(i = 0; i < N; i++)
        {
            for(j = 0; j < N; j++)
            {
                printf("a[%d][%d] = ",i + 1,j + 1); 
                scanf("%d",&a[i][j]);
            }
            
        }
        for(i = 0; i < N; i++)
        {
            RowSum[i] = getRowSum(i,N,a);
            ColSum[i] = getColSum(i,N,a);
            //Проверям равенство сумм соответсвующих строк и столбцов
            if(RowSum[i] != ColSum[i])
            {
                IsMagic = false;
                break;
            }
 
        }
        //Если суммы всех строк равны между собой
        //то равны между собой и суммы всех столбцов
        //т.к. уже известно что RowSum[i] == ColSum[i]
        for(i = 1; i < N; i++)
        {
            if(RowSum[i] != RowSum[i - 1])
            {
                IsMagic = false;
                break;
            }
        }
        if(IsMagic)
            printf("Matrix is magic\r\n");
        else
            printf("Matrix is NOT magic\r\n");
        printf("Y - new input\r\n");
        ch = getch();
    }
    while(ch == 'Y' || ch == 'y');
    return 0;
}
 
int getRowSum(int iRow, int n, int arr[][N])
{
    int sum = 0;
    for(int j = 0; j < n; j++)
        sum += arr[iRow][j];
    return sum;
}
 
int getColSum(int iCol, int n, int arr[][N])
{
    int sum = 0;
    for(int i = 0; i < n; i++)
        sum += arr[i][iCol];
    return sum;
}
[Результат работы]
Enter matrix
a[1][1] = 1
a[1][2] = 1
a[1][3] = 1
a[2][1] = 1
a[2][2] = 1
a[2][3] = 1
a[3][1] = 1
a[3][2] = 1
a[3][3] = 1
Matrix is magic
Y - new input
Enter matrix
a[1][1] = 2
a[1][2] = 1
a[1][3] = 1
a[2][1] = 1
a[2][2] = 1
a[2][3] = 1
a[3][1] = 1
a[3][2] = 1
a[3][3] = 1
Matrix is NOT magic
Y - new input
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru