Ошибка e0028 выражение должно иметь константное значение как исправить?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Russian");
int N;
printf("Введите размер квадратной матрицы: ");
scanf("%d", &N);
int matrix[N][N];
// заполнение матрицы случайными числами и вывод ее на экран
printf("Матрица:\n");
srand(time(0)); // инициализация генератора случайных чисел
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix[i][j] = rand() % 100; // генерация случайного числа от 0 до 99
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
int sum = 0;
// вычисление суммы элементов четных столбцов
for (int j = 1; j < N; j += 2) {
for (int i = 0; i < N; i++) {
sum += matrix[i][j];
}
}
// вывод результата
printf("Сумма элементов всех четных столбцов: %d\n", sum);
return 0;
}
Ошибку пишет в int matrix[N][N]; а именно ему не нравятся эти 2 N
Вариант 1: перейти с компилятора C++ (или доисторического компилятора C) на актуальный компилятор C - который понимает int matrix[N][N]; Вот тут, например, всё работает: https://onlinegdb.com/LMh5gE8wl
Вариант 2: создать массив через malloc. Точно так, как в любом учебнике C рассказывается.
Какое ограничение на размер матрицы? Например, если матрица не может больше чем 100 на 100, то напиши
int martix[100][100];
Он ругается на то, что N неизвестно во время компиляции