0

私は、元素とあなたが探している[ ]元素の周期表を出力するプログラムを作成していました...[*]

 void printmap(int x, int y)
{
    int a, b, table[9][18] = {
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
        1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
        1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
        1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
        1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
        0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
        0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 
    };   // 0 - Empty, 1 - [ ], 2 - [*]

    table[x][y] = 2;
        b = 0;
    printf("\n*******************\n\n");
    for( a = 1, printf("  \t"); a < 19; a++)
    {
        printf("%3d", (b + a));
    }
    printf("\n");
    for(a = 0; a < 9; a++)
    {
        printf("\n%2d\t", a + 1);
        for(b = 0; b < 18; b++)
        {
            switch(table[a][b])
            {
                case 0 :
                printf("   ");

                case 1 : 
                printf("[ ]");
                break;

                case 2 : 
                printf("[*]");
                break;

                default : 
                printf("");
            }
        }
    }
}

何らかの理由で、出力が台無しになっています...(ヘリウムの引数を渡すと、そうあるべきで018これが得られます:http://pastebin.com/YjhjzSi8

私は何を間違っていますか?ありがとうございました

4

3 に答える 3

2

これは 2D 配列ではありません。2D 配列のように見えるからといって、2D 配列であるとは限りません。

これはあなたが持っているものです

 table[9][18] = {
    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
    ...
    0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0
 };

それに応じてブラケットを追加する必要があります

 table[9][18] = {
    {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, 
    {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1),
    ....
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}};
于 2013-11-13T02:54:11.297 に答える