随机给4个数字,要求是4个数字的范围0-9且各不相同,但有顺序。要你猜这4个数字。如果你猜的数字中一个数字和给的数字相同且位置相同就得一个A,如果猜对了数字但位置不对就得一个B. 比如给的数字是7 4 8 2而你猜的是5 4 2 6你就可以得到一个
附:电脑出数字,你来猜.
#include <iostream.h>
int main()
{
int a[4],b[4];
int i=0,j,k,flag;
int A,B;
//用了一个flag变量,等于1表示随机已经产生过了
while(i<4)
{
flag=0;
k=rand()%10;
for(j=0;j<i;j++)
if(a[j]==k)
flag=1;
if(flag==0) {a[i]=k;i++;}
}
while(1)
{
A=0,B=0;
for(i=0;i<4;i++)
cin>>b[i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(a[i]==b[j] && i==j)
A++;
if(a[i]==b[j] && i!=j)
B++;
}
if(A==4) {cout<<"prefect"<<endl; return 0;}
cout<<A<<"A"<<B<<"B"<<endl;
}
}
PS: 前面2贴是刚刚相反的思路,想设计一个程序.它的作用是你先想4个数字,要电脑猜.电脑猜4个数字你评价(给多少A,B).
还是很要AI,难度蛮大的.这个问题想了好久,昨天突然有点思路,所以下午跑到图书馆写了一下午,终于有点思路.明天在改下,应该可以成功!
还有最近考研复习到线性代数,打算写一个求距阵的行列式值和求逆距阵的程序,有兴趣可以关注下..
评论