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

Как сделать константными значения "m" и "n" - C++

Восстановить пароль Регистрация
 
na3ar1y
 Аватар для na3ar1y
48 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 163
31.03.2012, 22:35     Как сделать константными значения "m" и "n" #1
не знаю как сделать константными значения "m" и "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
#include <iostream>
using namespace std;
void main()
{
    int n;
    int m;
    cout<<"VVedite koli4estvo strok i stolbcov 4erez ENTER: ";
    cin>>n>>m;
    int *mas= new int [n][m];// ОШИБКА - выражение должно иметь константное значения
    int i,j;
    for(i=0; i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            cout<<(mas[i][j]=rand()%5-3)<<"\t";
        }
        cout<<"\n"<<endl;
    }
 
    for(i=0; i<n;i++)
    {
        for(j=i+1;j<m;j++)
        {
            if(mas[i][j]<0)
            { 
                mas[i][j]=0;
            }
        }
    }
 
    system("PAUSE");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
31.03.2012, 22:41     Как сделать константными значения "m" и "n" #2
Цитата Сообщение от na3ar1y Посмотреть сообщение
int *mas= new int [n][m];// ОШИБКА - выражение должно иметь константное значения
Не верно, как пример

C++
1
2
3
 int **matr = new int *[n]; 
    for (i = 0; i < n; ++i) 
        matr[i] = new int [m];
и освобождаем память

C++
1
2
3
for (i = 0; i < n; i++)
        delete [] matr[i];
    delete [] matr;
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 22:41     Как сделать константными значения "m" и "n" #3
Цитата Сообщение от na3ar1y Посмотреть сообщение
C++
1
    int *mas= new int [n][m];// ОШИБКА - выражение должно иметь константное значения
C++
1
2
int **mas=new int*[n];
for (int i=0;i<n;i++) mas[i]=new int[m];
Оу, уже написали
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
31.03.2012, 22:43     Как сделать константными значения "m" и "n" #4
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
#include <iostream>
using namespace std;
int main()
{
    int n;
    int m;
    cout<<"VVedite koli4estvo strok i stolbcov 4erez ENTER: ";
    cin>>n>>m;
    int i,j;
    int **mas = new int *[n]; 
    for (i = 0; i < n; ++i) 
        mas[i] = new int [m];  
    
    for(i=0; i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            cout<<(mas[i][j]=rand()%5-3)<<"\t";
        }
        cout<<"\n"<<endl;
    }
 
    for(i=0; i<n;i++)
    {
        for(j=i+1;j<m;j++)
        {
            if(mas[i][j]<0)
            { 
                mas[i][j]=0;
            }
        }
    }
 
 
    for (i = 0; i < n; i++)
        delete [] mas[i];
    delete [] mas;
    system("PAUSE");
    return 0;
}
na3ar1y
 Аватар для na3ar1y
48 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 163
31.03.2012, 22:48  [ТС]     Как сделать константными значения "m" и "n" #5
Цитата Сообщение от Infinity3000 Посмотреть сообщение
for (i = 0; i < n; ++i)
* * * * mas[i] = new int [m];
а почему мы так делаем????
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
31.03.2012, 22:59     Как сделать константными значения "m" и "n" #6
Цитата Сообщение от na3ar1y Посмотреть сообщение
а почему мы так делаем????
C++
1
2
3
int **mass = new int *[n]; //Создаем сначала одномерный массив, элементами которого будут указатели (создаем "строки")
    for (i = 0; i < n; ++i) 
        mass[i] = new int [m]; //Создаем двумерный массив, выделяя блоки памяти под "столбцы"...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 23:00     Как сделать константными значения "m" и "n"
Еще ссылки по теме:

Имеется строка "AAABBCCAA", нужно вывести на экран "3A2B2C2A", и так же сделать обратное действие C++
Как через "IF" сделать чтобы программа закрывалась после ввода неверного значения C++
C++ Как сделать execl("my", "arg", argv)?

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

Или воспользуйтесь поиском по форуму:
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 23:00     Как сделать константными значения "m" и "n" #7
Цитата Сообщение от na3ar1y Посмотреть сообщение
а почему мы так делаем????
Сначала мы выделяем память под n указателей (например, n отвечает за количество строк). Каждому из этих указателей мы присваиваем m элементов (в каждой строке по m элементов).

Добавлено через 22 секунды
Да что ж это такое, опять не успел О_о
Yandex
Объявления
31.03.2012, 23:00     Как сделать константными значения "m" и "n"
Ответ Создать тему
Опции темы

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