Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ananastasia
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 29
#1

Ошибка "Constant expression is required" - C++

31.03.2015, 18:40. Просмотров 970. Ответов 3
Метки нет (Все метки)

Здравствуйте. Программа для формирования одномерного массива из матрицы размером N*N, компилятор turbo c++, выдает такую ошибку: Constant expression is required
два раза в этой строке:
Код
int matrix[n][n], *line = new int[n*n];
Не могу понять, что в коде не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream.h>
#include <conio.h>
 
int main()
{
    int n,i,j,k;
    int act;
    cout << "vvedite razmer matrici: ";
    cin >> n;
   int matrix[n][n], *line = new int[n*n];
    for (j=0;j<n;j++)
    for (i=0;i<n;i++) {
    cout << "[" << i+1 << "," << j+1 << "]=";
        cin >> matrix[i][j];
    }
    j=n-1; k=0; //j-x k-y
    act=1; //1 down; 2 left-up; 3 left; 4 right-down
    for (i=0;i<n*n;i++) {
        switch (act) {
    case 1: line[i]=matrix[j][k]; k++;
            if (j==n-1) act=2;
            if (j==0) act=4;
            break;
        case 2: line[i]=matrix[j][k]; j--; k--;
            if (j==0) act=1;
            if (k==0 && j!=0) act=3;
            break;
        case 3: line[i]=matrix[j][k]; j--;
            if (k==n-1) act=2;
            if (k==0) act=4;
            break;
        case 4: line[i]=matrix[j][k]; j++; k++;
            if (k==n-1) act=3;
            if (j==n-1 && k!=n-1) act=1;
            break;
        }
    }
    for (i=0;i<n*n;i++)
        cout << line[i] << " ";
    getch();
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2015, 18:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка "Constant expression is required" (C++):

Ошибка "Constant expression is required" - const в сlass - C++
Создал класс: class TVseGrup { public: TVseGrup(const short KolTo4=0) : FKolTo4(KolTo4) {FKolTo4=0;} const short FKolTo4; ...

Ошибка: "case expression not constant" - C++
int draw(char form, int razmer){ switch(form){ case&quot;t&quot;:{ int i=0; while(i&lt;=10) { int s=10;

E2313 Constant expression required - C++
при компиляции возникает ошибка в последней строке test.v1.cpp(38): E2313 Constant expression required main (){ int count; int j...

Не могу понять в чем ошыбка [C++ Error] SKLAD.cpp(32): E2313 Constant expression required - C++
Не могу найти ошибку SKLAD.cpp(32): E2313 Constant expression required точнее понять из-а чего она и как ее исправить #include...

Компилатор, ошибка "expected primary-expression before "int" " - C++
код #include &lt;iostream.h&gt; using namespace std; #include &lt;windows.h&gt; int show_big_and_litle(int a, int b, int c) { int...

Ошибка "integer constant is too large for 'long' type" - C++
#include &quot;Blockdll.h&quot; #include &lt;Windows.h&gt; #include &lt;iostream&gt; using namespace std; #define m 0x100000000 #define...

3
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2015, 21:26 #2
Для записи:
C++
1
int arr[n];
n должно быть целочисленной константой времени компиляции. Т.е. это не может быть число, которое вводит пользователь.
1
Super__Enot
33 / 43 / 8
Регистрация: 14.03.2015
Сообщений: 134
31.03.2015, 21:32 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
int arr[n];
int -тип
arr - имя переменной
[]-количество выделены байт в памяти.
тебе такая запись не подходит, используй динамическое выделение памяти через указатель.

C++
1
2
3
4
5
int *arr;
...
...
arr = new int[n];
//или тоже самое только через malocc.
1
Ananastasia
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 29
10.04.2015, 14:49  [ТС] #4
Спасибо за ответы,разобралась!)
0
10.04.2015, 14:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2015, 14:49
Привет! Вот еще темы с ответами:

Ошибка при компиляции invalid suffix "i64" on integer constant - C++
Подскажите, при компиляции вылетает ошибка ./pluginterfaces/base/ftypes.h:82:33: error: invalid suffix &quot;i64&quot; on integer constant ...

Ошибки в примере:"newline in constant"и"unexpected end of file while looking for precompiled header directive" - C++
здравствуйте. учусь по книге Шилдта там такой пример( да и везде впринципе начинают с этого примера) #include &quot;iostream&gt; using...

Visual Studio 2012 Ошибка 1 error : Required file "tracker.exe" is missing. - C++
vs 2012 #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { cout&lt;&lt;&quot;123&quot;&lt;&lt;endl; return...

Бинарный поиск, ошибка: "Invalid operands to binary expression" - C++
При компиляции программы XCode ругается на: algorithm:677:97: Invalid operands to binary expression ('const Luggage' and 'int') Сломал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru