2017-02-15 13 views
0

私はいくつかの単純な問題を解決していますが、問題があります。変数N、M、Pしか入力できません。とtempYはループ内にあり、コードは次のとおりです。Visual Studio 2017のC++はループ内の変数を入力できません

#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; 
} 

Btwです。私はcoutで簡単なテキストを印刷することに問題がありました。コードに問題はありませんでしたが、何かが "Hello world"のような単純なテキストの印刷を妨げています。

+0

「ループ内に変数を入力できません」という意味はありますか?また、このタイトルはその問題をあまり説明していません。 –

+0

私の英語は悪いですが、テキストを編集しました –

+0

意味を教えてください。あなたはエラーが発生しますか?値は表示されませんか?何を入力しようとしているのか、何が起こっているのか。 –

答えて

0
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); 

することができ、それは、よりシンプルである可能性があります。オンラインの例を見てください。

+0

nの代わりにmと間違えたのはタイプミスでしたが、 –

+0

ありがとう、私は間違いを訂正しましたが、今は動作しています。私は "field [i] .resize(m、1)"を行うことはできません今は役に立ちます。 –

関連する問題