2016-11-23 170 views
-2

每次我在Visual Studio 2015中运行此代码时,它都会显示错误标识符“treasureLocation”未定义......我做错了什么?阵列:标识符“array”未定义

int main() 
{ 
int gridSize [2]; 
int gridX = 0; 
int gridY = 0; 
int treasureLoaction[2]; 
int end; 


std :: cout << "what size grid would you like to play on?" << std :: endl; 

std :: cin >> gridSize [1]; 
std :: cin >> gridSize [2]; 

treasureLocation[1] = rand() % gridSize[1] + 1; 
treasureLocation[2] = rand() % gridSize[2] + 1; 

while (gridY < gridSize[2]) { 
    gridY++; 
    while (gridX < gridSize[1]) { 
     std::cout << "* "; 
     gridX++; 
    } 
    std::cout << "" << std::endl; 
    gridX = 0; 
}; 

std::cout << treasureLoaction; 
std::cin >> end; 
return 0; 

}

+0

'std :: cout << treasureLoaction;'你不能用数组来做到这一点。虽然你拼写错了也。 – drescherjm

+1

'treasureLoaction!= treasureLocation',作为一个简单的印刷错误关闭。 – Jack

回答

2

有一个错字

int treasureLoaction[2]; 
      ^^^^^^^^ 

考虑到,如果一个数组有n元素则指数的有效范围为[0, n-1]

而且这种说法

std::cout << treasureLoaction; 

不会按照您的想法输出数组的元素。

你可以在一个循环做到这一点,例如

for (int x : treasureLocation) std::cout << x << ' '; 
std::cout << std::endl; 
1

尝试通过数组迭代来打印它的内容是这样

for (int i = 0; i < your array length; i++) cout << array[i]; 

,除非你要打印的地址,并也看起来像你在宝物行为中有拼写错误。