Ошибка компиляции: требуется константное выражение
Исправьте код
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
void ira1 (int** mas, int m, int n)
{
for (int i = 0; i < m; i++)
{
mas[i] = new int[n];
for (int j = 0; j < n; j++)
{
mas[i][j] = rand()%+190-100;
}
}
}
void ira2 (int** mas, int m, int n)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << mas[i][j] << "\t";
}
cout << endl;
}
}
void rra2 (double** mas, int m, int n)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << mas[i][j] <<"\t";
}
cout << endl;
}
}
void rra1 (double** mas, int m, int n)
{
for (int i = 0; i < m; i++)
{
mas[i] = new double[n];
for (int j = 0; j < n; j++)
{
mas[i][j] = (rand()%20000-10000)/100.0;
}
}
}
void zero (int* mas, int n)
{
for(int i = 0; i < n; i++)
mas[i]=0;
}
void double3 (double** mas, int m, int n, int *mas_plus, int *mas_otr, int *mas_zero)
{
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
{
if (mas[i][j]>0) mas_plus[j]++;
else
if (mas[i][j]<0) mas_otr[j]++;
else mas_zero[j]++;
}
}
void double3v (int* mas, int n)
{
for (int i = 0; i<n; i++)
{
cout << mas[i] << "\t";
}
cout<<endl;
}
int main()
{
srand((unsigned)time(0));
int m, n;
cout <<"Enter size of array N x M"<<endl;
cin >> n >> m;
cout <<"Integer random array "<< n <<" x "<<m<<endl;
int** f = new int*[m];
ira1 (f,m,n);
ira2 (f,m,n);
cout <<endl;
cout <<"Real random array "<< n <<" x "<<m<<endl;
double **z = new double*[m];
rra1 (z,m,n);
rra2 (z,m,n);
double** mas = new double*[m];
int mas_plus[n];
int mas_otr[n];
int mas_zero[n];
zero (mas_plus, n);
zero (mas_otr, n);
zero (mas_zero, n);
double3 (mas, m, n, mas_plus, mas_otr, mas_zero);
double3v (mas_plus, n);
double3v (mas_otr, n);
double3v (mas_zero, n);
}
в строчках
int mas_plus[n];
int mas_otr[n];
int mas_zero[n];
подчёркнуты n.
error C2057: требуется константное выражение;
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2133: mas_plus: неизвестный размер
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2133: mas_otr: неизвестный размер
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2133: mas_zero: неизвестный размер
не понимаю, что он от меня хочет
Источник: Stack Overflow на русском