2013-11-10 4 views
0

Я пытаюсь отобразить это для цикла 2d-массива, но получаю странный вывод, и я не уверен, что в коде не так. Я использую оператор if для преобразования внешнего столбца и строки в «x», а остальные должны быть пустыми.C++ для цикла 2D-массив странный вывод

#include <iostream> 
using namespace std; 

int main() { 


const int H = 25; 
const int W = 82; 


char Map[H][W]; // test map display 


for(int i = 0; i < H; i++){ // display the map 
    for(int j = 0; j < W; j++){ 
     if(i == 0 || i == 24 || j == 0 || j == 81) Map[i][j] = 'x'; 
     else Map[i][j] = ' '; 
     cout << Map[i][j]; 
    } 
} 






    return 0; 
} 

Выход я стремлюсь должен выглядеть следующим образом

xxxxxxxxxxxxxxxxxxx 
x     x 
x     x 
x     x 
x     x 
xxxxxxxxxxxxxxxxxxx 
+2

Какой «странный выход» вы получаете? – doctorlove

+0

вы можете увидеть результат через этот компилятор http://ideone.com/cBIXOv – ssj3goku878

+1

Выглядит хорошо для меня. Вы хотите, чтобы он печатал новую строку для каждого значения i? – doctorlove

ответ

3

Я подозреваю, что вы хотите, чтобы напечатать новую строку после заполнения каждой строки:

for(int i = 0; i < H; i++){ // display the map 
    for(int j = 0; j < W; j++){ 
     if(i == 0 || i == 24 || j == 0 || j == 81) Map[i][j] = 'x'; 
     else Map[i][j] = ' '; 
     cout << Map[i][j]; 
    } 
    cout << '\n'; //<-------- new line 
} 

Компьютер будет только начать новую строку, если вы это расскажете.
Возможно, вам придется рассмотреть вопрос о том, хотите ли вы сохранить их в Map или нет.

+0

безупречный! Спасибо. – ssj3goku878

Смежные вопросы