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

Массивы C++. Ошибка: M должна быть константой - C++

Восстановить пароль Регистрация
 
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
13.11.2013, 13:05     Массивы C++. Ошибка: M должна быть константой #1
Пытаюсь сделать массив, вот что вышло. Выбивает ошибку, что M должна быть константой (15 строка). Как это исправить?
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>
#include<cmath>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int** matrix = NULL;
    int n=0, m=0;
    cout << "Введите кол-во строк: " << endl;
    cin >> n;
    cout << "Введите кол-во неизвестных в строке: " << endl; 
    cin >> m;
    matrix = new float*[n][m+1];
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            cout << "Номер строки:" << i+1 << "Номер неизвестной:" << j+1 << ":" << endl;
            cin >> matrix[i][j];
        }
        cout << "Constant term of the equation #" << i+1 << ":" << endl;
        cin >> matrix[i][m];
    }
    for (int k = 0; k < n; k++){
        for (int l = 0; l <= m; l++){          //Для вывода матрицы 
            cout << matrix[k][l] << " ";
        }
        cout << endl;    
    }      
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 13:05     Массивы C++. Ошибка: M должна быть константой
Посмотрите здесь:

C++ Перемножыть матрицы 2*3 и 3*2, в итоге должна быть матрица 3*3, здесь и трудность
C++ Какая должна быть структура сложного (объемного) проекта?
C++ Функция strcpy () - строка должна быть пустой?
Точка входа должна быть определена C++
C++ Точка входа должна быть определена
C++ ошибка:1>LINK : fatal error LNK1561: точка входа должна быть определена
LINK : fatal error LNK1561: точка входа должна быть определена C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peps
 Аватар для Peps
8 / 8 / 3
Регистрация: 14.11.2012
Сообщений: 75
13.11.2013, 13:19     Массивы C++. Ошибка: M должна быть константой #2
пиши
C++
1
const int n, m;
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
13.11.2013, 13:31  [ТС]     Массивы C++. Ошибка: M должна быть константой #3
Цитата Сообщение от Peps Посмотреть сообщение
пиши
C++
1
const int n, m;
Тогда пишет что к этим операндам принадлежит более, чем один оператор, подчеркивает:
cin >> n;
cin >> m;
Peps
 Аватар для Peps
8 / 8 / 3
Регистрация: 14.11.2012
Сообщений: 75
13.11.2013, 13:48     Массивы C++. Ошибка: M должна быть константой #4
вот так работает
C++
1
2
3
4
5
6
7
8
int** matrix = NULL;
   int a,b;
    cout << "Введите кол-во строк: " << endl;
    cin >> a;
        const int  n =a;
    cout << "Введите кол-во неизвестных в строке: " << endl;
    cin >>  b;
     const int  m =b;

Добавлено через 7 минут
здесь почитай
Помогите найти ошибку в программе
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.11.2013, 15:28     Массивы C++. Ошибка: M должна быть константой #5
Цитата Сообщение от Blueeyer Посмотреть сообщение
matrix = new float*[n][m+1];
Двумерный динамический массив создается так
C++
1
2
3
matrix = new float*[n];
for (int i = 0; i < n; i++)
   matrix[i] = new float[m+1];
Удаление
C++
1
2
3
for (int i = 0; i < n; i++)
   delete[] matrix[i];
delete[] matrix;
ShadowFirst
54 / 47 / 1
Регистрация: 31.10.2013
Сообщений: 161
13.11.2013, 15:29     Массивы C++. Ошибка: M должна быть константой #6
Обращаю ваше внимание на одну вещь, вы объявляете массив указателей int, а инициализируете как float. Не порядок. И понятное дело так как вы объявили не объявляется, правильное объявление было на ответ выше
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 21:47     Массивы C++. Ошибка: M должна быть константой
Еще ссылки по теме:

C++ Точка входа должна быть определена
C++ Может ли значение метки case в операторе switch быть числовым отрезком, или только константой?
Ошибка fatal error LNK1561: точка входа должна быть определена C++
Точка входа должна быть определена C++
Ошибка компиляции "LINK : fatal error LNK1561: точка входа должна быть определена" C++

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

Или воспользуйтесь поиском по форуму:
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 220
13.11.2013, 21:47  [ТС]     Массивы C++. Ошибка: M должна быть константой #7
Цитата Сообщение от kazak Посмотреть сообщение
Двумерный динамический массив создается так
C++
1
2
3
matrix = new float*[n];
for (int i = 0; i < n; i++)
   matrix[i] = new float[m+1];
Удаление
C++
1
2
3
for (int i = 0; i < n; i++)
   delete[] matrix[i];
delete[] matrix;
благодарю, помогло
Yandex
Объявления
13.11.2013, 21:47     Массивы C++. Ошибка: M должна быть константой
Ответ Создать тему
Опции темы

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