我有一个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;
}
答案 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);