大家好,我正在尝试编写一个可以从左向右移动的笑脸。我设法对笑脸进行编码并打印出来。但我无法对其进行编码,使其可以从左向右移动。
到目前为止,这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int charprint(char x[][8], int X, int Y)
{
for (int i = 0 ; i<X ; i++)
{
for (int j = 0; j<Y; j++ )
{
if( x[i][j]== '1')
{
printf(" ");
}
else
{
printf("%c", 219);
}
}
printf("\n");
}
}
int main()
{
char bitmap [8][8] =
{
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'X', '1', '1', '1', '1', '1', '1','X'},
{'1', 'X', '1', '1', '1', '1', 'X','1'},
{'1', '1', 'X', 'X', 'X', 'X', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
};
charprint(bitmap, 8, 8);
return 0;
}
最佳答案
你必须考虑“移动并在移动后填充空白”和“环绕移动”之间的区别。
for each line:
temp = wrap ? (moveleft() ? line[0] : line[7]) : '1'
memmove(line + moveleft() ? 0 : 1, line + moveleft() ? 1 : 0, 7)
line[moveleft() ? 7 : 0] = temp
关于c - 从左到右移动字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681694/