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

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

Войти
Регистрация
Восстановить пароль
 
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
#1

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

13.11.2013, 13:05. Просмотров 304. Ответов 6
Метки нет (Все метки)

Пытаюсь сделать массив, вот что вышло. Выбивает ошибку, что 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++):

Ошибка fatal error LNK1561: точка входа должна быть определена - C++
пробовал добавить библиотеку stdafx.h и менял тип main с void на int не помогает .... подскажите //BitSet.h #include&lt;iostream&gt; ...

ошибка:1>LINK : fatal error LNK1561: точка входа должна быть определена - C++
вот текст программы: #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include &quot;stdio.h&quot; ...

Может ли значение метки case в операторе switch быть числовым отрезком, или только константой? - C++
Например, в Pascal возможна запись: ... Case a of 0..15: Write( a+7 ); ... Возможно ли аналогичная запись в c++? или...

Ошибка компиляции "LINK : fatal error LNK1561: точка входа должна быть определена" - C++
Подскажите пожалуйста где ошибка. При компиляции выдает LINK : fatal error LNK1561: точка входа должна быть определена #include&lt;iostream&gt;...

Точка входа должна быть определена - C++
Всем привет ,заранее прошу прощения за тему ,которая уже поднималась ,но вот возникла ошибка , LNK1561 точка входа должна быть...

Точка входа должна быть определена - C++
Так как тупая проблема, спрашиваю в форуме для новичков. Я понимаю что смысл проблемы в том что нет или криво задан мэйн, но я не вижу тут...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Peps
8 / 8 / 3
Регистрация: 14.11.2012
Сообщений: 75
13.11.2013, 13:19 #2
пиши
C++
1
const int n, m;
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
13.11.2013, 13:31  [ТС] #3
Цитата Сообщение от Peps Посмотреть сообщение
пиши
C++
1
const int n, m;
Тогда пишет что к этим операндам принадлежит более, чем один оператор, подчеркивает:
cin >> n;
cin >> m;
Peps
8 / 8 / 3
Регистрация: 14.11.2012
Сообщений: 75
13.11.2013, 13:48 #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
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
13.11.2013, 15:28 #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
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 161
13.11.2013, 15:29 #6
Обращаю ваше внимание на одну вещь, вы объявляете массив указателей int, а инициализируете как float. Не порядок. И понятное дело так как вы объявили не объявляется, правильное объявление было на ответ выше
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
13.11.2013, 21:47  [ТС] #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;
благодарю, помогло
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 21:47
Привет! Вот еще темы с ответами:

Точка входа должна быть определена - C++
#include &lt;iostream&gt; using namespace std; template&lt;class T&gt; T min2(T a,T b) { return a&lt;b? a: b; } int main() ...

Точка входа должна быть определена - C++
Всем привет. На YouTube нашел видео. Стало интересно. Там был приложен файл исходного кода .срр. Я скачал и попытался скомпилировать и у...

Функция strcpy () - строка должна быть пустой? - C++
Здравствуйте! Возник вопрос: пусть имеются две непустые строки s1 и s2. Правильно ли копировать содержимое строки s2 в строку s1? Или...

Error Точка входа должна быть определена - C++
выводит такую ошибку, что делать? вот код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.11.2013, 21:47
Ответ Создать тему
Опции темы

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