#include <iostream>
using namespace std;

int main() {

	/*
		Задание 1.
		В одномерном символьном массиве найти
		количество элементов, являющихся цифрами.
	*/
	int size1;
	do {
		cout << "Enter array size: ";
		scanf_s("%d", &size1);
	} while (size1 <= 0);

	srand((int)time(0) * 999);

	cout << "Array:" << endl;
	char* array1 = new char[size1];
	for (int i = 0; i < size1; i++) {
		array1[i] = (int)round(rand() * 100);
		cout << array1[i] << " ";
	}

	int digits = 0;
	for (int i = 0; i < size1; i++)
		if ((int)array1[i] >= 48 && (int)array1[i] < 58) digits++;
	cout << endl << "Digits: " << digits << endl;

	delete[] array1;
	cout << endl;
	

	/*
		Задание 2.
		Квадратная матрица M, состоящая из целых чисел,
		вводится с клавиатуры. Определить, является ли
		она магическим квадратом, т.е. такой, в которой
		суммы элементов во всех строках и столбцах одинаковы.
	*/
	int size2;
	do {
		cout << "Enter matrix size: ";
		scanf_s("%d", &size2);
	} while (size2 <= 0);
	cout << "Enter matrix:" << endl;

	int** matrix = new int* [size2];
	for (int i = 0; i < size2; i++) {
		cout << "Row " << i + 1 << ": ";
		matrix[i] = new int[size2];
		for (int j = 0; j < size2; j++)
			cin >> matrix[i][j];
 	}

	bool magic = true;
	int controlSum, sum;
	
	// Rows
	for (int i = 0; i < size2; i++) {
		sum = 0;
		for (int j = 0; j < size2; j++) sum += matrix[i][j];
		if (i == 0) controlSum = sum;
		if (controlSum != sum) magic = false;
	}

	// Cols
	for (int i = 0; i < size2; i++) {
		sum = 0;
		for (int j = 0; j < size2; j++) sum += matrix[j][i];
		if (controlSum != sum) magic = false;
	}

	cout << endl << "Result: ";
	if (magic) cout << "Magic square";
	else cout << "Common square";
	cout << endl;

	return 0;
}