Задание:
Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран.
Эта же задача, но без динамического массива и просто си
#include <iostream>
#include <ctime> // в ней функция time
using namespace std;
int main()
{
srand(time(NULL)); // Инициализируем генератор случайных чисел.
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++)
{
a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
cout << a[i][j] << " "; // Вывести элементы на консольку
}
cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
}
// Удаление массива
for (int i = 0; i < n; i++)
{
delete[]a[i]; // Удаляем каждый элемент
}
delete [] a; // А потом массив
return 0;
}
подскажите, а почему при удалении двухмерного массива цикл удаления написан для одномерного массива?
наверное, потому что двумерный массив — это массив массивов, а[i]-это i-я строчка, и мы удаляем каждую строчку таким образом
Подскажите, как сделать, чтобы в массиве были и отрицательные элементы?
вместо:
a[i][j] = rand() % 10;
напишите например так:
a[i][j] = (rand() % 10)-10;
А как создать одномерный массив на основе этой программы, пробовал удалить второй цикл, выдает ошибку.