Форум программистов, компьютерный форум CyberForum.ru

Какая-то ошибка - C++

Восстановить пароль Регистрация
 
alexanderxxx
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 44
29.03.2013, 18:08     Какая-то ошибка #1
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
43
44
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
    ifstream in("input.txt");
    ofstream out("output.txt");
    int m, n, k, j=0, l=0;
    in >> n;
    int mass[2][n];
    for (int i=0; i<n; ++i)
    {
        in >> k;
        if (k%2==1)
        {
            mass[0][j]=k;
            j++;        
        }
        else
        {    
            mass[1][l]=k;
            l++;
        }
    }
    n=j-1;
    m=l-1;
    for (i=0; i<n; ++i)
    {
        out << mass[0][i] << " " << std::endl;
    }
    for (i=0; i<m; ++i)
    {
        out << mass[1][i] << " " << std::endl;
    }
    if (m>n)
    {
        out << "YES";
    }
    else
    {
        out << "NO";
    }            
    return 0;
}

В 10 строке пишет ошибку.

task.cpp
task.cpp(10) : error C2057: expected constant expression
task.cpp(10) : error C2466: cannot allocate an array of constant size 0
task.cpp(10) : error C2087: 'mass' : missing subscript

Это что?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programmer_11
94 / 69 / 5
Регистрация: 08.10.2011
Сообщений: 130
29.03.2013, 18:12     Какая-то ошибка #2
Цитата Сообщение от alexanderxxx Посмотреть сообщение
int mass[2][n];
Число столбцов должно быть константным выражением.
alexanderxxx
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 44
29.03.2013, 18:13  [ТС]     Какая-то ошибка #3
Цитата Сообщение от programmer_11 Посмотреть сообщение
Число столбцов должно быть константным выражением.
Спасибо. А переменной не сделать никак?
programmer_11
94 / 69 / 5
Регистрация: 08.10.2011
Сообщений: 130
29.03.2013, 18:19     Какая-то ошибка #4
Можно, но с помощью указателей.
напиши
C++
1
2
3
4
int **mass;
mas=new int*[2];
for (int i=0;i<2;i++)
mas[i]=new int[n]//Если n у тебя число столбцов
а после использования массива добавь
C++
1
2
3
for (int i=0;i<2;i++)
delete [] mass[i];
delete [] mass;
Yandex
Объявления
29.03.2013, 18:19     Какая-то ошибка
Ответ Создать тему
Опции темы

Текущее время: 18:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru