2015-09-20 3 views
-2

Я печатаю случайные числа, заключенные в квадраты ascii в сетке 6x6. Проблемы с печатью сетки.Проблемы с сетью C++

Вместо того, чтобы иметь 6 столбцов, все мои поля и номера распечатываются в 1 колонке. Были проблемы с устранением неполадок, но, похоже, они не обнаружили проблемы. Ниже приведен код. Цените свою помощь.

int main(void) 
{ 

    cout << "Magic Grid\n" << endl; 

    int arrayxy [6][6]; 
    srand((unsigned)time(0)); 
    int lowest=1111, highest=9999; 
    int range=(highest-lowest)+1; 

// Fill array with random values 
for (int i = 0; i < 6; ++i) 
{ 
    for(int j = 0; j < 6; ++j) 
    { 
     arrayxy[i][j] = lowest+int(range*rand()/(RAND_MAX + 1.0)); 
    } 
} 

// Print array as grid 
for (int i = 0; i < 6; ++i) 
{ 
    for(int j = 0; j < 6; ++j) 
    { 
      cout << char(218); 
      for (int y=0; y< 4; y++) 
      { 
       cout << char(196); 
      } 
      cout << char(191) <<endl; 
      cout << char(179) << arrayxy[i][j] << char(179) << endl; 
      cout << char(192); 
      for (int z=0; z< 4; z++) 
      { 
       cout << char(196); 
      } 
      cout << char(217) <<endl; 
    } 
    cout << endl; 
} 

cout << endl; 

} 
+1

Почему вы не пошагово код с помощью отладчика, чтобы получить власть, что происходит? –

+0

отладчик не возвращает мне никаких ошибок. Нет проблем, кроме того, что результат просто дает мне 1 столбец. – eddyiction

+1

Вы, вероятно, путаете отладчик с компилятором. –

ответ

0

Вы должны endl после всех столбцов получить распечатан, но не раньше.

Вот как я исправил ваш код, который дает, надеюсь, то, что вы хотели иметь.

Для записи, я специально изменил те ASCII к * и &, чтобы сделать результат консоли более читаемым. Вы можете изменить их обратно на то, что вы хотите, чтобы эти символы были снова.

void WriteFrontLine(std::size_t count) 
{ 
    for (int i = 0; i < count; i++) 
    { 
     cout << '*'; 
     cout << '&' << '&' << '&' << '&'; 
     cout << '*'; 
    } 

    cout << endl; 
} 

void WriteEndLine(std::size_t count) 
{ 
    for (int i = 0; i < count; i++) 
    { 
     cout << '*'; 
     cout << '&' << '&' << '&' << '&'; 
     cout << '*'; 
    } 

    cout << endl; 
} 


int main(void) 
{ 
    cout << "Magic Grid\n" << endl; 

    int arrayxy[6][6]; 
    srand((unsigned)time(0)); 
    int lowest = 1111, highest = 9999; 
    int range = (highest - lowest) + 1; 

    // Fill array with random values 
    for (int i = 0; i < 6; ++i) 
    { 
     for (int j = 0; j < 6; ++j) 
     { 
      arrayxy[i][j] = lowest + int(range*rand()/(RAND_MAX + 1.0)); 
     } 
    } 

    // Print array as grid 
    for (int i = 0; i < 6; ++i) 
    { 
     WriteFrontLine(6); 

     for (int j = 0; j < 6; ++j) 
     { 
      cout << '*' << arrayxy[i][j] << '*'; 
     } 

     cout << endl; 

     WriteEndLine(6); 

     cout << endl; 
    } 
    cout << endl; 
} 

enter image description here

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