在2d数组C中切换匝数

在2d数组C中切换匝数,c,arrays,function,if-statement,for-loop,C,Arrays,Function,If Statement,For Loop,在用户输入一些说明后,我尝试按此顺序打印一些字符: 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

在用户输入一些说明后,我尝试按此顺序打印一些字符:

       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;
 }
用户第二回合

* O * * 
* * D * 
* * * * 
* * * *
用户第三回合

* O * * 
* * D * 
* O * * 
* * * *
用户第4回合

* O * * 
* * D * 
* O D * 
* * * *

依此类推,你的预期产出是什么?你能说清楚一点吗?我的预期产出在第一行。让我把它添加到我的问题中。
return getchar():需要考虑换行是输入的。我应该将其放入函数中吗?当我这样做时,代码只打印4个字符,
returngetchar()-->
charch;scanf(“%c”和“ch”);返回ch你的预期输出是什么,你能说清楚一点吗?我的预期输出在第一行。让我把它添加到我的问题中。
return getchar():需要考虑换行是输入的。我应该将其放入函数中吗?当我这样做时,代码只打印4个字符,
returngetchar()-->
charch;scanf(“%c”和“ch”);返回ch
* O * * 
* * D * 
* O D * 
* * * *