Нужно создать и вывести двумерный квадратный массив из случайных чисел на СИ, заданный размером 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));

то получается просто рабочий вариант с вводом массива из чисел


Ответы (0 шт):