m=n=0;
if(i!=j&&b[j]==a[i])
有什么意义?
在我看的一些书中,%i和%d没有区别的
我想要快乐。
还没解决吗?
那除非是你输入不合法了,如果你输入的数字其中有两个或两个以上的数字相同的话,这个程序就不行了,
不过可以稍微修改一下,加个tag[4]标记数组就行了.
#include "stdio.h"
#include "conio.h"
typedef enum{false,true}bool;
int m,n;
main()
{
int i,j,k;
int a[4];
static int b[4]={1,2,3,4};
bool tag[4];
for(k=0;k<10;k++) /*一共可以猜10次*/
{for(i=0;i<4;tag[i]=false,i++) scanf("%d",&a[i]); /*输入4个数字*/
printf("\n");
m=n=0;
for(i=0;i<4;i++)
{
if(b[i]==a[i])
{
if(tag[i]==false)
{
tag[i]=true;
m++;
}
} /*如果数字与位子都正确的提示。*/
else
{
for (j=0;j<4;j++)
{
if(i!=j&&b[j]==a[i]&&tag[j]==false)
{
n=n+1;
tag[j]=true;
}
}
}
} /*数字对了,但是位子没对的提示。*/
printf("A%d,B%d",m,n);
getch();
if(m==4) break; /*当全部猜对后,跳出循环*/
}
}