Распечатка 2D массива, замена значений - PullRequest
0 голосов
/ 22 ноября 2011

Я впервые использую массивы, и я застрял на этом.Как я могу изменить значения внутри 2D-массива и распечатать его?

Например, я хочу заменить 1 на «» (пробел), а 2 на «*», а затем распечатать их.Как я могу это сделать?

Это мой код:

#include <iostream>

using namespace std;

int main(){

    int Xshape[5][5] = {{2,1,1,1,2},
                        {1,2,1,2,1},
                        {1,1,2,1,1},
                        {1,2,1,2,1},
                        {2,1,1,1,2},

    };
    {
        for (int row = 0; row<5 ; row++)
        for (int column=0; column < 5; column++)
        {
            cout << Xshape[row][column] << endl;
        }

    }
    system("pause");

}

Я думаю, что это как-то связано с оператором if-else, но я не могу выполнить его, может кто-нибудь помочь мне, пожалуйста?

Ответы [ 4 ]

2 голосов
/ 22 ноября 2011

Да, это можно сделать с помощью простого оператора if:

for (int column=0; column < 5; column++)
{
    int val = Xshape[row][column];
    if (val == 1){
        cout << " " << endl;
    }else if (val == 2){
        cout << "*" << endl;
    }else{
        //  Handle error case of neither 0 nor 1.
    }
}
0 голосов
/ 22 ноября 2011
for (int row = 0; row<5 ; row++)
  { 
  for (int column=0; column < 5; column++)
   {
    if(Xshape[row][column]==1) cout << " ";
    else if(Xshape[row][column]==2) cout << "*";
   }
     cout << "\n";
  }
0 голосов
/ 22 ноября 2011

как то так:

for (int column=0; column < 5; column++)
{
  switch (Xshape[row][column])
  {
    case 1: cout << " " << endl;
            break;
    case 2: cout << "*" << endl;
            break;

    default:assert(0); 
            break;
  }
}
0 голосов
/ 22 ноября 2011

Я не уверен, что это то, что вы имеете в виду, но вы можете изменить его следующим образом: Xshape [row] [col] = value;

...