如何给猜对的数以及猜错的位置赋值

设计一个程序实现:
随机产生一个四位的随机数,用户输入一个四位的随机数。比较两数,统计所猜数正确,同时猜数位置正确的个数,赋值给A;以及所猜数正确,但猜数位置错误的个数,赋值给B,在每次猜后给出AXBX的提示,同时限定猜数次数最多十次


#include <time.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
   srand((unsigned)time(NULL));
   char num[5] = {0}, n[5];
   int A, B, cnt = 10;

   num[0] = rand() % 9 + 1 + '0';
   for (int i = 1; i < 4; i++)
      num[i] = rand() % 10 + '0';

   puts(num); //

   while (cnt--)
   {
      A = B = 0;
      fflush(stdin);
      scanf("%4s", n);
      for (int i = 0; i < 4; i++)
      {
         if (num[i] == n[i])
            A++;
         for (int j = 0; j < 4; j++)
         {
            if (num[j] == n[i])
               B++;
         }
      }
      printf("A%dB%d\n", A, B);
      if (A == 4)
         break;
   }
   return 0;
}