随机给4个数字,要求是4个数字的范围0-9且各不相同,但有顺序。要你猜这4个数字。如果你猜的数字中一个数字和给的数字相同且位置相同就得一个A,如果猜对了数字但位置不对就得一个B. 比如给的数字是7 4 8 2而你猜的是5 4 2 6你就可以得到一个1A1B(第2个4猜对了且位置也正好,2则位置没有猜对)。 附:电脑出数字,你来猜. #include <iostream.h> int main() { int a[4],b[4]; int i=0,j,k,flag; int A,B; //用了一个flag变量,等于1表示随机已经产生过了 i=0; 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,难度蛮大的.这个问题想了好久,昨天突然有点思路,所以下午跑到图书馆写了一下午,终于有点思路.明天在改下,应该可以成功! 还有最近考研复习到线性代数,打算写一个求距阵的行列式值和求逆距阵的程序,有兴趣可以关注下..

评论