Visual Studio 2017 中的 C++,无法输入循环中的变量
C++ in Visual Studio 2017, can't input variables which are in loop
我正在解决一些简单的问题,但是我有一个问题,我只能输入变量N,M和P,我不能输入循环中的变量tempX和tempY,这是代码:
#include <iostream>
#include <vector>
#include <minmax.h>
using namespace std;
typedef unsigned long long ull;
int main() {
ull n, m, p;
cin >> n >> m >> p;
vector<vector<unsigned short> > field;
field.resize(n);
for (ull i = 0; i < m; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
for (ull i = 0; i < p; i++) {
ull tempX, tempY;
cin >> tempX >> tempY;
field[tempX][tempY] = 0;
}
for (ull i = 1; i < n; i++)
for (ull j = 1; j < m; j++)
if (field[i - 1][j - 1] != 0 && field[i][j] != 0)
field[i][j] = min(field[i - 1][j], field[i][j - 1]) + 1;
ull maxLength = 0;
for (ull i = 0; i < n; i++)
for (ull j = 0; j < m; j++)
maxLength = max(maxLength, field[i][j]);
cout << maxLength << endl;
return 0;
}
顺便说一句。我在使用 cout 打印简单文本时遇到问题,代码中没有问题,但有些东西阻止打印像 "Hello world" 这样的简单文本,是否与此问题有任何联系?
vector<vector<unsigned short> > field;
field.resize(n);
for (ull i = 0; i < m; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
那里已经有一个错误。 m
而不是 n
for (ull i = 0; i < n; i++)
您应该正确命名您的变量。 n
不是一个好名字。 numberOfRows
或 rowCount
或 matrixDimension1
可能更好。
顺便用stl.
for (ull i = 0; i < n; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
可能是
for (ull i = 0; i < field.size(); i++)
field[i].resize(m, 1);
它还可以更简单。看看网上的例子就知道了
我正在解决一些简单的问题,但是我有一个问题,我只能输入变量N,M和P,我不能输入循环中的变量tempX和tempY,这是代码:
#include <iostream>
#include <vector>
#include <minmax.h>
using namespace std;
typedef unsigned long long ull;
int main() {
ull n, m, p;
cin >> n >> m >> p;
vector<vector<unsigned short> > field;
field.resize(n);
for (ull i = 0; i < m; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
for (ull i = 0; i < p; i++) {
ull tempX, tempY;
cin >> tempX >> tempY;
field[tempX][tempY] = 0;
}
for (ull i = 1; i < n; i++)
for (ull j = 1; j < m; j++)
if (field[i - 1][j - 1] != 0 && field[i][j] != 0)
field[i][j] = min(field[i - 1][j], field[i][j - 1]) + 1;
ull maxLength = 0;
for (ull i = 0; i < n; i++)
for (ull j = 0; j < m; j++)
maxLength = max(maxLength, field[i][j]);
cout << maxLength << endl;
return 0;
}
顺便说一句。我在使用 cout 打印简单文本时遇到问题,代码中没有问题,但有些东西阻止打印像 "Hello world" 这样的简单文本,是否与此问题有任何联系?
vector<vector<unsigned short> > field;
field.resize(n);
for (ull i = 0; i < m; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
那里已经有一个错误。 m
而不是 n
for (ull i = 0; i < n; i++)
您应该正确命名您的变量。 n
不是一个好名字。 numberOfRows
或 rowCount
或 matrixDimension1
可能更好。
顺便用stl.
for (ull i = 0; i < n; i++)
for (ull j = 0; j < m; j++)
field[i].push_back(1);
可能是
for (ull i = 0; i < field.size(); i++)
field[i].resize(m, 1);
它还可以更简单。看看网上的例子就知道了