切换成2d阵列​​C

时间:2016-10-21 02:23:58

标签: 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");

   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 * 
* * * *

等等

0 个答案:

没有答案