Top.Mail.Ru
Ответы

Помогите исправить ошибку! С++

Е0028: Выражение должно иметь константное значение

Ошибку показывает здесь float a[n][m];

#include
using namespace std;
int main() {
int n, m;
cin >> n >> m;
float a[n][m];
float min_sum = 1000;
float index = -1;
for(int i = 0; i < n; i++)
{
float sum = 0;
for(int j = 0; j < m; j++)
{
cin >> a[i][j];
sum += a[i][j];
}
if (min_sum > sum)
{
min_sum = sum;
index = i;
}
}
for (int i = 0; i < index + 1; i++)
{
for (int j = 0; j < m; j++)
cout << a[i][j] << "";
cout << "\n";
}
for (int i = 0; i < m; i++)
cout << 0 << " ";
cout << "\n";
for (int i = index + 1; i < n; i++)
{
for(int j = 0; j < m; j++)
cout << a[i][j] << "";
cout << "\n";
system("pause");
return 0;
}
}

По дате
По рейтингу
Аватар пользователя
Оракул
5лет

При таком объявлении массива величины n и m должны быть заданы заранее, иначе программа не будет знать какого он размера.

Аватар пользователя
Оракул
5лет

в плюсах нельзя создавать VLA
используйте std::vector

Аватар пользователя
Мастер
5лет

немного поправила
https://pastebin.com/QWPpUXKy
на будущее - стоит публиковать код на том же пейстбин, а сюда ссылку кидать.
я бы тогда строки оставила в той же нумерации, и ты б легко увидел, что поменялось .

если напишешь, что должно происходить, еще гляну.