从2d数组打印字符时出现颠倒问号

时间:2013-12-01 01:33:58

标签: c arrays 2d character

我有一个2D阵列,它是我正在制作的游戏的原型“地图”。它接收地图的长度和地图的宽度,然后是制作地图的字符类型(a - _或。)并将字符X打印Y次。

出于某种原因,当我的网格X和Y彼此不相等并且值大约为20或更高时,我会颠倒问号而不是我指定的字符符号。

为什么会这样?

#include <stdio.h>

int main(){

int Y=25;
int X=15;
char map[Y][X];

int i,j=0;

for (i=0;i<Y;i++)
    for(j=0;j<X;j++)
        map[Y][X]='-'//any character;


for (i=0;i<Y;i++){
    for(j=0;j<X;j++){
        printf("%c",map[Y][X]);}
    printf("\n");}

return 0;

}

1 个答案:

答案 0 :(得分:1)

不,从X和Y中减去一个不是重点。你是增量i和j。使用他们。考虑制作X&amp; Y const。

int Y = 25;
int X = 15;
char map[Y][X];

int i, j = 0;

for (i = 0;i < Y;i++)
    for (j = 0;j < X;j++)
        map[i][j] = '-';  //any character

for (i = 0;i < Y;i++)
{
    for (j = 0;j < X;j++)
    {
        printf("%c", map[i][j]);
    }

    printf("\n");
}

return (0);