C++, Единичная матрица

Задание

Квадратная матрица называется единичной, если все ее диагональные элементы равны единице, а остальные — нулю. Напишите программу, которая принимает с клавиатуры число N, создает единичную матрицу размера N на N и выводит ее на экран.

Штука тут в том, что нужно заполнить диагонали единицами, а все остальное нулями. Чтобы так сделать, нужно понять, какая формула у диагоналей:

  • Формула главной диагонали: i == j
  • Формула побочной диагонали: j==n-i-1

Остается это только записать в код:

Код:

#include <iostream>

using namespace std;

int main()
{
	int n = 0; 
	cin >> n; // Считываем с клавиатуры n
	int **a = new int* [n]; // Создаем массив указателей
	for (int i = 0; i < n; i++)
	{
		a[i] = new int [n]; // Создаем элементы
	}
	// А дальше работа как с обычным массивом. 
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (i == j || j==n-i-1) // Если диагональ 
				a[i][j] = 1;
			else // а если нет
                               a[i][j] = 0; 
			cout << a[i][j] << " "; // Вывести элементы на консольку
		}
		cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
	}
	// Удаление массива
	for (int i = 0; i < n; i++)
	{
		delete[]a[i]; // Удаляем каждый элемент
	}
	delete [] a; // А потом массив
	return 0;
}

Добавить комментарий