我正在尝试在用户输入一些说明后按此顺序打印一些字符:
player=0 prints O
player=1 prints D
player=2 prints O
player=3 prints D
player=4 prints O
#include <stdio.h>
char direction(void)
{
printf("Walking to the right\n");
return getchar();
}
int getRow(char z)
{
int c;
if (z == 'R') {
printf("Row: ");
scanf("%d", &c);
}
return c;
}
int getSteps(char z)
{
int f;
if (z == 'R') {
printf("Steps: ");
scanf("%d", &f);
}
return f;
}
void print(char a[4][4])
{
int i, k;
for (i = 0; i < 4; i++) {
for (k = 0; k < 4; k++) {
printf("%c ", a[i][k]);
}
printf("\n");
}
}
int main(void)
{
char z;
int c, f;
int player;
char a[4][4] = {
{ '*', '*', '*', '*' },
{ '*', '*', '*', '*' },
{ '*', '*', '*', '*' },
{ '*', '*', '*', '*' }
};
for (player=0;player<5;player++) {
z = direction();
c = getRow(z);
f = getSteps(z);
if (player == 0 || player == 2 || player == 4)
{
a[c][f] = 'O';
}
else {
a[c][f] = 'D';
}
print(a);
}
return 0;
}
我认为我的if语句和我的for循环是错误的,因为目前我的代码只打印D,除了最后一个回合:/任何帮助都会很感激。
用户先转
* O * *
* * * *
* * * *
* * * *
用户第二轮
* O * *
* * D *
* * * *
* * * *
用户第3次
* O * *
* * D *
* O * *
* * * *
用户第4次
* O * *
* * D *
* O D *
* * * *
等等