题意:用户输入一个四位数,A代表猜的数与数的位置与系统的一样,B代表有这个数但位置与系统的位置不同
看下代码吧:
#include<stdio.h> #include<math.h> main() { int answer[4]={1,2,3,4},guess,time=1,a,b,i,j; while(a!=4) { a=0; b=0; printf("%d ",time); time++; //次数 scanf("%d",&guess); for(i=3;i>=0;i--) //判断猜测每个数字与answer【】中的数字对比 { for(j=0;j<=3;j++) { if((guess/int(pow(10,i)))==answer[j]) //注意pow(10,i)返回浮点型,转换为整形 { if(i+j==3) a=a+1; else b=b+1; } } guess=guess-guess/int(pow(10,i))*int(pow(10,i));} printf(" %dA%dB\n",a,b); //A代表有几个数位置对了,B代表有这个数字但位置不对 } }