问题来自一个c语言的猜数字游戏,两个四位数进行比较,比较结果为* A*B A表示位置正确数字也正确,B表示数字正确但位置不正确,比如2A2B表示有两个数字位置正确且位置也正确,除此之外,还有两个数字正确但是位置不对
求大神解答,感觉自己没有思路无从下手
将两个四位数都转为4个数字数组,然后用一个数组的每个值与另一个数组比较,如果有相等的数字,如果位置与检查的数字一样,则A的计数加1,否则B的计数加1。
#include <stdio.h>
int main()
{
int A=0,B=0;
int m,n,i,j;
int a[4],b[4];
scanf("%d%d",&m,&n);
for(i=0;i<4;i++)
{
a[i] = m%10;
m=m/10;
}
for(i=0;i<4;i++)
{
b[i] = n%10;
n=n/10;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i] == b[j])
break;
}
if(j<4)
{
if(i==j)
A++;
else
B++;
}
}
printf("%dA%dB",A,B);
return 0;
}