c ++在二维数组中打印行和列名称

时间:2016-03-12 03:10:41

标签: c++ multidimensional-array cout

只是想知道是否可以在二维数组中打印行和列的名称?我有一个名为Row1的13行座位计划 - > Row13和列是字母A - > F ...我可以让座位计划没有问题,但我也想打印出行和列名称。下面是我希望输出看起来像的示例。

Seat A B C D E F
Row1
Row2

等等。我现在只使用2行,直到我可以获得所需的输出。谢谢。

    #include "stdafx.h"
    #include <iostream>
    #include <iomanip>
    #include <string>

    using namespace std;

    const int num_of_rows = 13;
    const int num_of_col = 6;
    enum row { Row1, Row2, Row3, Row4, Row5, Row6, Row7, Row8, Row9, Row10,   Row11, Row12, Row13 };
    enum seat { A, B, C, D, E, F };
    char seatingPlan[num_of_rows][num_of_col];

    int main()
    {
    int row;

    char seatingPlan[13][6];

    seatingPlan[Row1][A] = '*';
    seatingPlan[Row1][B] = '*';
    seatingPlan[Row1][C] = 'X';
    seatingPlan[Row1][D] = '*';
    seatingPlan[Row1][E] = 'X';
    seatingPlan[Row1][F] = 'X';

    seatingPlan[Row2][A] = '*';
    seatingPlan[Row2][B] = 'X';
    seatingPlan[Row2][C] = '*';
    seatingPlan[Row2][D] = 'X';
    seatingPlan[Row2][E] = '*';
    seatingPlan[Row2][F] = 'X';

    for (row = 0; row < num_of_rows; row++)
    {
        for (seat = 0; seat < num_of_col; seat++)
            cout << setw(5) << seatingPlan[row][seat];
        cout << endl;
    }        
    system("pause");
    return 0;
}

2 个答案:

答案 0 :(得分:0)

不是对行名和列名使用直接枚举,而是将行和列表示为普通整数:而不是列的枚举A到F,使用列号0到5.而不是&# 34; ROW1&#34;通过&#34; Row13&#34;,使用第0行到第12行。

既然你将行和列表示为普通整数,那么实现一个返回人类可读行和列名的函数变得很简单;也就是说,给定一个列号,返回其名称(&#34; A&#34;列#0,&#34; B&#34;列#1等等)和行相同。

一旦完成,打印出二维矩阵的行名和列名变得微不足道。

答案 1 :(得分:0)

这可能对您有所帮助: 像这样修改你的代码:

   cout << "Seat " << setw(5) << "A" << setw(5) << "B" << setw(5) << "C" << setw(5) << "D" << setw(5) << "E" << setw(5) << "F" << endl;;
   for (row = 0; row < num_of_rows; row++)
   {
      cout << "Row " << row + 1 << setw(5);

...