Ошибка компиляции: требуется константное выражение

Рейтинг: -1Ответов: 1Опубликовано: 20.04.2015

Исправьте код

#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: неизвестный размер

не понимаю, что он от меня хочет

Ответы

Ответов пока нет.