Нужно создать и вывести двумерный квадратный массив из случайных чисел на СИ, заданный размером n
Пробовал как-то так
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <malloc.h>
#include <time.h>
#include <ctime>
int main()
{
setlocale(LC_ALL, "Russian");
int* a; // указатель на массив
int i, j, n;
srand(time(NULL));
printf("Введите размер массива: ");
scanf_s("%d", &n);
// Выделение памяти
a = (int*)malloc(n * n * sizeof(int));
// Ввод элементов массива
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
a[i][j] = rand() % 100;
}
}
// Вывод элементов массива
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%4d ", *(a + i * n + j));
}
printf("\n");
}
free(a);
system("pause");
return 0;
}
подчёркивает j в этой строке и выдаёт ошибку: выражение должно иметь тип указателя на объект
a[i][j] = rand() % 10;
При том, что если вместо этой строчки вставить
printf("a[%d][%d] = ", i, j);
scanf_s("%d", (a + i * n + j));
то получается просто рабочий вариант с вводом массива из чисел