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

Компилятор выдает ошибку при объявлении массива. Не могу понять где соль - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Система передачи данных http://www.cyberforum.ru/cpp-beginners/thread520387.html
Система передачи данных обеспечивает передачу пакетов дан*ных из пункта А в пункт C через транзитный пункт В. В пункт А паке*ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c...
C++ Класс String Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.( Visual C++) http://www.cyberforum.ru/cpp-beginners/thread520385.html
Значение переменных поменять местами так, чтобы они оказались упорядоченными по возрастанию C++
Здравствуйте дорогие форумчане! помогите пожалуйта с решением задачки на С++ . Значение переменных X, Y, Z, поменять местами так, что бы они оказались упорядоченными по возрастанию.
Замените группы элементов, состоящие из нечётного количества нулей, на один нулевой элемент, а из чётного — на два. C++
Дан массив Х, содержащий большое количество нулевых элементов. Замените группы элементов, состоящие из нечётного количества нулей, на один нулевой элемент, а из чётного — на два.
C++ Удаление элементов массива http://www.cyberforum.ru/cpp-beginners/thread520362.html
1)В каждой группе подряд идущих одинаковых элементов оставить только один элемент. Если удаление элементов невозможно, выдать об этом сообщение. 2)Удалить из массива каждую группу из подряд идущих...
C++ Подключение дополнительных модулей и работа с функциями из этих модулей Опять с вопросами после частично прочитанной книги "C++ Для Чайников". ) Сейчас пытаюсь понять как работает подключение дополнительных модулей и работа с функциями из этих модулей, нужно как то... подробнее

Показать сообщение отдельно
ms.natali
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 14

Компилятор выдает ошибку при объявлении массива. Не могу понять где соль - C++

16.03.2012, 19:47. Просмотров 2744. Ответов 11
Метки (Все метки)

Объясните пожалуйста в чем моя ошибка.
Вот исходник

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream> // cin, cout,endl
#include <math.h>   // Мат функции
#include <iomanip>  // формат вывода
 
using namespace std;
const int n=2; //Кол-во строк
const int m=7; //Кол-во столбцов
 
void vvod(int a[n][m])
{
for(int i=0;i<n;i++)
    for(int j=0;j<m;j++) a[i][j]=rand()/1000;
}
 
void vyvod(int a[n][m])
 
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++) cout<<a[i][j]<<"      ";cout<<endl;
    }
}
int nom(int a[n][m],int p)
{
    int nom=0;
    for(int i=0;i<n;i++)
    {   
        for(int j=0;j<m;j++) if(a[i][j]>p) nom+=1;
    }
    return nom;
}
int form(int a[n][m], int p, const int q)
{
    int b[q];
    for(int i=0;i<n;i++)
    {   
        for(int j=0;j<m;j++)
            if(a[i][j]>p) {for (int k=0;k<q;k++) b[k]=a[i][j];}
    }
    return b[q];
}
 
void output_mas(int a[], int m)
{
    cout<<"massiv"<<endl;
    for(int i=0;i<m;i++)
        cout<<" "<<a[i];
    cout<<endl;
}
int main()
{
int w[n][m],z[n][m];
setlocale (LC_CTYPE, "Russian");
vvod(w);vvod(z);
cout<<"Изначальная матрица W"<<endl; vyvod(w);
cout<<"Изначальная матрица Z"<<endl; vyvod(z);
int p;
cout<<"Введите число, больше которого должны быть элементы"<<endl; cin>>p;
const int kw=nom(w,p);
const int kz=nom(z,p);
int t[kw],s[kz];
t[kw]=form(w,p,kw);
s[kz]=form(z,p,kz);
output_mas(t,kw);
output_mas(s,kz);
system ("pause");
}
Visual studio выдает вот такие ошибки.
C++
1
2
3
4
5
6
7
8
9
10
1>1.cpp
1>c:1.cpp(34) : error C2057: expected constant expression
1>c:1.cpp(34) : error C2466: cannot allocate an array of constant size 0
1>c:1.cpp(34) : error C2133: 'b' : unknown size
1>c:1.cpp(61) : error C2057: expected constant expression
1>c:1.cpp(61) : error C2466: cannot allocate an array of constant size 0
1>c:1.cpp(61) : error C2133: 't' : unknown size
1>c:1.cpp(61) : error C2057: expected constant expression
1>c:1.cpp(61) : error C2466: cannot allocate an array of constant size 0
1>c:1.cpp(61) : error C2133: 's' : unknown size
Dev-C++ Ошибок не находит но при запуске выдает огромные неясно от куда цифры. в чем ошибка не понимаю. подскажите.
Вообще задача стоит такая:
Задать значения целочисленным элементам матриц W = {wij} и Z = {zij}, где i = 0, 1, 2; j = 0, 1, 2,..., 7 и сформировать массивы T и S соответственно из элементов матриц W и Z, больших заданного числа Р.

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